新手到JOSSO。我用tomcat设置了JOSSO,而partnerapp似乎正常工作。我有一个'样本'webapp我正试图用JOSSO配置。当我尝试访问webapp时正确显示JOSSO登录页面但是我成功登录后出现以下异常
java.lang.RuntimeException: Outbound relaying failed. No Principal found. Verify your SSO Agent Configuration!
org.josso.tc60.agent.SSOAgentValve.invoke(SSOAgentValve.java:551)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:722)
我已将partner-app条目添加到josso-agent-config.xml。
<agent:partner-app id="MySampleApp" context="/sample"/>
我的web.xml看起来像这样
...
<welcome-file-list id="WelcomeFileList">
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<security-constraint>
<!-- Sample Security Constraint -->
<web-resource-collection>
<!-- We're going to protect this resource and make it available only to users in "role1". -->
<web-resource-name>protected-resources</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>HEAD</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<!-- NOTE: This role names will be retrieved by Josso using the proper identity store. -->
<auth-constraint>
<role-name>role1</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-role >
<description>Role 1</description>
<role-name>role1</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<!--
NOTE: This will redirect the user to the proper login page provided by JOSSO.
-->
<form-login-page>/login-redirect.jsp</form-login-page>
<form-error-page>/login-redirect.jsp</form-error-page>
</form-login-config>
</login-config>
...
在c:\ tomcat_dir \ conf \ Catlina \ localhost中创建了一个sample.xml文件,看起来像这样
<Context docBase="${catalina.home}/webapps/sample" privileged="true" antiResourceLocking="true" antiJARLocking="true">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Context>
对此问题的任何反馈都将不胜感激。
在[{3}}
上转发答案 0 :(得分:0)
您应该在tomcat初始化上指明jaas.conf
文件,方法是在VM Arguments上添加以下参数(如果您正在使用Eclipse):
-Djava.security.auth.login.config=D:\apache-tomcat-7.0.54-josso\conf\jaas.conf
此文件应包含以下内容:
josso {
org.josso.tc70.agent.jaas.SSOGatewayLoginModule required debug=true;
};
我使用Eclipse IDE管理的Tomcat,因此我在服务器配置(View Servers)/ Open launch configuration / Arguments / VM Arguments中包含了上述配置。 但是,如果您正在配置独立的tomcat安装,请浏览%TOMCAT_HOME $ / bin / scripts e并检查tomcat正在使用哪个jaas.conf并使用上面显示的内容进行更新。 我希望它适合你!