[英]Jaas Basic Authentication tomcat 7
我不斷收到同樣的錯誤,我已經更改了指定 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)
我已經將這個 tom 添加到我的 tomcat7w.exe 文件中。
-Djava.security.auth.login.config=C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\conf\jaas.config
另一個是我也有這個 realm
<Realm className="org.apache.catalina.realm.JAASRealm"
appName="JaaSExample"
userClassNames="Security.UserPrincipal" roleClassNames="Security.RolePrincipal" />
那我錯過了什么? 請幫我,
我正在使用.netbeans,tomcat 7.0.47。
thank you very much,
我決定使用 glassfish!
根據http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JAASRealm
您應該為Java設置一個login.config文件,並通過指定其在JVM中的位置來告訴Tomcat在哪里找到它,例如,通過設置環境變量: JAVA_OPTS=$JAVA_OPTS -Djava.security.auth.login.config=$CATALINA_BASE/conf/jaas.config
添加
對於Windows,請打開startup.bat添加以下行: set JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config after okHome
例如
set JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
加上前面的回答,還可以在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.