java.lang.SecurityException:无法找到登录配置

时间:2010-09-27 05:19:58

标签: tomcat jaas

您好
我使用的是Bonita5.2和Tomcat6.0.19 我导出了应用程序(它提供了一个war文件和一些配置文件和库)并部署在tomcat中。当我运行应用程序时,在登录页面之后,我收到错误

description The server encountered an internal error () that prevented it from fulfilling this request.

exception
java.lang.SecurityException: Unable to locate a login configuration
    com.sun.security.auth.login.ConfigFile.(Unknown Source)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    java.lang.reflect.Constructor.newInstance(Unknown Source)
         .
         .
         .
         .

在启动tomcat之前,我运行一个包含以下内容的bat文件:

set BONITA_OPTS="-Dorg.ow2.bonita.environment=d:\Tomcat6.0\conf\bonita-environment.xml"
set LOG_OPTS="-Djava.util.logging.config.file=d:\Tomcat6.0\conf\logging.properties"
set SECURITY_OPTS="-Djava.security.auth.login.config=d:\Tomcat6.0\conf\jaas-standard.cfg"
set JAVA_OPTS=%JAVA_OPTS% %LOG_OPTS% %SECURITY_OPTS% %BONITA_OPTS%

我猜这个错误是因为找不到jaas配置文件。但我确信我提到的路径。

我还缺少什么来配置jaas?

由于

5 个答案:

答案 0 :(得分:8)

在命令行中指定jaas配置文件也可以:

-Djava.security.auth.login.config=C:/Apps/apache-tomcat-6.0.29/conf/jaas.config

答案 1 :(得分:2)

我使用的是Tomcat 6.0.13提取的(不是Windows服务)版本,我遇到了类似的问题。

要解决此问题,我只需将以下选项添加到catalina.bat文件中:

set JAVA_OPTS=%JAVA_OPTS% "-Djava.security.auth.login.config=C:/SecureLoginModule.conf" %LOGGING_CONFIG%

它对我有用。

- TKS

答案 2 :(得分:0)


我已经解决了这个问题。我需要将jaas配置文件路径放在文件中

JAVA_HOME\jre6\lib\security\java.security 

由于

答案 3 :(得分:0)

试试这个:

String configFileLocation = getServletContext().getRealPath("/WEB-INF/jaas.config");
    System.err.println(configFileLocation);
    System.setProperty("java.security.auth.login.config", configFileLocation);

在您的servlet或JSP中

答案 4 :(得分:0)

catalina.bat

下划线:okhome

添加以下行

set JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config

它对我有用。我过去2天有这个错误,感谢您在此处发布的其他内容