[英]Jaas Basic Authentication tomcat 7
I keep on getting the same error, I have already changed the tomcat7w file that specifies the jaas config file location我不断收到同样的错误,我已经更改了指定 jaas 配置文件位置的 tomcat7w 文件
javax.security.auth.login.LoginException: No LoginModules configured for JaaSExample:
at javax.security.auth.login.LoginContext.init(LoginContext.java:273)
at javax.security.auth.login.LoginContext.<init>(LoginContext.java:514)
at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:417)
at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:356)
at org.apache.catalina.realm.CombinedRealm.authenticate(CombinedRealm.java:146)
at org.apache.catalina.realm.LockOutRealm.authenticate(LockOutRealm.java:180)
at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:166)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:574)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
I have already added this tom my tomcat7w.exe file.我已经将这个 tom 添加到我的 tomcat7w.exe 文件中。
-Djava.security.auth.login.config=C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\conf\jaas.config
another is that I also have this realm另一个是我也有这个 realm
<Realm className="org.apache.catalina.realm.JAASRealm"
appName="JaaSExample"
userClassNames="Security.UserPrincipal" roleClassNames="Security.RolePrincipal" />
so what am I missing?那我错过了什么? please help me,请帮我,
I am using.netbeans, tomcat 7.0.47.我正在使用.netbeans,tomcat 7.0.47。
thank you very much,
I have resolved to using glassfish!我决定使用 glassfish!
According to http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JAASRealm 根据http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JAASRealm
You should set up a login.config file for Java and tell Tomcat where to find it by specifying its location to the JVM, for instance by setting the environment variable: JAVA_OPTS=$JAVA_OPTS -Djava.security.auth.login.config=$CATALINA_BASE/conf/jaas.config
您应该为Java设置一个login.config文件,并通过指定其在JVM中的位置来告诉Tomcat在哪里找到它,例如,通过设置环境变量: JAVA_OPTS=$JAVA_OPTS -Djava.security.auth.login.config=$CATALINA_BASE/conf/jaas.config
Added 添加
For Windows open startup.bat Add the following line: set JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config after okHome
对于Windows,请打开startup.bat添加以下行: set JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config after okHome
eg 例如
set JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
Adding to the previous answer, you can also set the JAVA_OPTS
in the setenv.bat
file in the bin directory of tomcat home.加上前面的回答,还可以在tomcat家的bin目录下的setenv.bat
文件中设置JAVA_OPTS
。
set "JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaasData.config"
exit /b 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.