就是java文件操作阿
直接操作本地文件就可以了

解决方案 »

  1.   

    只能想出 对xml 文件 操作的方法
      

  2.   

    人工操纵文件、重写xml,都不是好方法,因为这样所做的修改,必须等到下次tomcat启动时才能生效,用户也不能根据自己的意愿选择密码,所以,这样的方法不能算对。
      

  3.   

    如果修改很容易。解析到tomcat-users.xml到内存中,修改以后再生成一下就好了。
    但是问题是,你这样改了也没用的 TOMCAT 只在启动时读取那个文件的。。
      

  4.   

    to:chnic(挠痒痒) ( ) 信誉:100 
    如果修改很容易。解析到tomcat-users.xml到内存中,修改以后再生成一下就好了。
    但是问题是,你这样改了也没用的 TOMCAT 只在启动时读取那个文件的。。
    -----------------------------------是的,我的意思就是:修改了以后,当时就有效,不能等到 tomcat  下次启动!
    所以,重写文件的方法,是达不到目的的。
      

  5.   


    干吗不直接配置到数据库呢?为什么要限制死是在xml里???
          <!--
          <Realm  className="org.apache.catalina.realm.JDBCRealm"
                 driverName="oracle.jdbc.driver.OracleDriver"
              connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
             connectionName="scott" connectionPassword="tiger"
                  userTable="users" userNameCol="user_name" userCredCol="user_pass"
              userRoleTable="user_roles" roleNameCol="role_name" />
          -->
      

  6.   

    to LZ。。 呵呵。这个我到真的没想过。你可以研究下tomcat的源代码,
    只要能拿到用户名和密码的引用,应该就可以修改的。
      

  7.   

    to:pigo() ( ) 信誉:149 你的意思是,配置到数据库,可以用更新数据表的方法:
    update users_table set user_password='新密码' where user_name='用户名'?配置到数据库,也是一样的,修改了数据表里的内容,只有tomcat下次启动后才能生效。不能达到用户自选密码、并且当时就能生效的目的。
      

  8.   

    刚才看了一眼JDBCRealm。java的源代码,好像是缓存起来了那你就继承这个Class自己写个动态查询的就可以了。
      

  9.   

    public class YourRealm
        extends RealmBase 写一个自己的实现就可以啦,或者 public class YourRealm
        extends org.apache.catalina.UserDatabase然后改成动态加载 xml 的即可。
      

  10.   

    to:pigo() ( ) 信誉:149 不好意思,我原来没测试过JDBC Realm,刚才试了一下,可以即时生效。你的办法行得通
      

  11.   

    to:pigo() ( ) 信誉:149 看了你后边的两个回贴,基本上和我的解决方法相似,只不过我没有写自己的类,全部用catalina的内容做的。