在调试jaas程序时,可以采用命令行的形式告知config文件的位置,如java -Djava.security.auth.login.config==sample_jaas.config。但是在开发web应用程序时,命令行形式肯定是行不通的,那么如何让web应用程序找到验证配置文件呢?

解决方案 »

  1.   

    Web程序不用这样直接调用JAAS,容器会管理,你需要做的是配置。
      

  2.   

    在你的container运行的JVM的jre目录下面的lib\security\java.security文件中添加你的jaas配置文件,然后,就可以在你的web应用中使用了!类似以下形式:login.config.url.1=file:D:/dwJAAS/dwJAAS/WEB-INF/jaas.config
      

  3.   

    非常感谢!!
    我运行Sun公司的jaas示例程序,工具是eclipse,当给run命令设置了-Djava.security.auth.login.config==sample_jaas.config参数时,程序可以正常运行。但是当去掉-Djava.security.auth.login.config==sample_jaas.config参数,而改在jdk的java.security文件中加了login.config.url.1=file:e:/Test/src/sample_jaas.config,再运行程序,则出错,提示“Cannot create LoginContext. 无法定位登录配置”。请问这是什么原因。谢谢!!
      

  4.   

    具体原因我不清楚,不过有几个注意事项跟你说一下:如果有多个config文件,那么login.config.url.1的序号应该顺序添加,不可以断开,如果从login.config.url.1直接跳到login.config.url.3,那么,login.config.url.3指定的config文件将不会被load,那么这个config中定义的module就不会起作用!
    注:如果有兴趣,我可以发一个jb的project给你,我原来写的一个测试的例子!
      

  5.   

    谢谢DarrenWang(达伦)!
    ,麻烦你传一份你的project过来,让我研究研究,不甚感激!!
      

  6.   

    可以用System.setProperty("java.security.auth.login.config", "real-path");http://ingod.asia