简体   繁体   English

Jaas 基本身份验证 tomcat 7

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM