|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
JAAS with JSPWikiHello,
I have been trying to implement JAAS login with JSPWiki on Tomcat. We are using JSPWiki 2.6.2 with Tomcat5.5 We have an existing web application (mainApp) that does not use JAAS. However, we would like to use JSPWiki as a portal with a single-sign-on feature - meaning when the user logs into our mainApp the user clicks on a link to JSPWiki application. At this point, we would like to automatically authenticate the user with appropriate roles and permissions and log him into JSPWiki. To acheive this, I have done the following but doesn't seem to work: 1. Tomcat server.xml: a. I've added a <Context> tag for JSPWiki application and <Context> tag for mainApp with crossContext=true in both. b. Added a <Realm> entry as such: <Realm className="org.apache.catalina.realm.JAASRealm" appName="JSPWiki-custom" userClassNames="com.ecyrd.jspwiki.user.DefaultUserProfile" roleClassNames="com.ecyrd.jspwiki.auth.authorize.Role" debug="99"/> c. Enabled SingleSignOn by adding the <Valve> tag within the <Host> tag as such: <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> 2. Placed my login module (JAASLoginModule's) jar file JAASLoginLM.jar in %TOMCAT_HOME%/common/lib folder. In the JAASLoginModule itself I am using HttpRequestCallback just like the SiteMinderLoginModule example: http://www.jspwiki.org/wiki/Security2.3WishList 3. I added the entries for the login module in jspwiki.policy towards the end as such: // grant LoginModule permissions grant codebase "file:${catalina.home}/common/lib/JaasLoginLM.jar" { permission javax.security.auth.AuthPermission "modifyPrincipals"; }; grant codebase "file:${catalina.home}/common/lib/JaasLoginAzn.jar" { permission javax.security.auth.AuthPermission "createLoginContext.jaaslogin"; permission javax.security.auth.AuthPermission "doAsPrivileged"; }; 4. In jspwiki.properties file I enabled JAAS as such: jspwiki.security = jaas 5. On tomcat startup I specify the policy file and jaas file settings as such: -Djava.security.auth.login.config==C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\JSPWiki\WEB-INF\jspwiki.jaas -Djava.security.policy==C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\JSPWiki\WEB-INF\jspwiki.policy 6. Disabled container managed authentication in <TOMCAT_HOME>/webapps/web.xml by commenting the <security-constraint> section and in jspwiki.properties set jspwiki.userdatabase.isSharedWithContainer = false Now, I restart the server and launch the mainApp and login. After logging in, I click on the link to JSPWiki (http://<hostname:port>/JSPWiki/Wiki.jsp) - which takes me to the main page as an "Anonymous" user. I dont see JAAS being used. The logs do not show any debug messages from my JAASLoginModule. Instead it says - "Checking JAAS configuration...JAAS already configured by some other application (leaving it alone...)" My security configuration verifier (SecurityConfig.jsp) says that it found jspwiki.jaas. It doesn't show any errors - except that it says "We found some errors with your configuration: Policy file does not have a keystore... at least not one that we can locate." Do I need jspwiki.jks file and an entry in policy file - keystore jspwiki.jks? - Currently I DO NOT have the keystore file. Do I need to programmatically create the LoginContext and call the login() method in the JSP? My understanding was that all that would happen automatically in the background. I am sure I'm missing something. Your help is greatly appreciated! Thanks. |
|
|
Re: JAAS with JSPWikiActually, you need to make sure that container-managed authentication
is enabled in JSPWiki. You can do this by **uncommenting** the security constraints in web.xml. That is the opposite of what you said you did (you said you commented them out). Here's the methodology I'd use to solve the problem. 1. Turn on container-managed auth in JSPWiki by uncommenting the security constraints. 2. Once you have turned on container-managed auth in JSPWiki, you need to make sure the container realm itself is working properly, You might want to use a very simple container realm first (for example, the memory realm that consults conf/tomcat-users.xml), instead of your custom JAAS realm. When you log via the container's realm, you should be able to see this principal propagated to JSPWiki. SecurityConfig.jsp should confirm that container auth works. 3. After verifying that 1) basic container authentication works and 2) JSPWiki recognizes the credentials, next try using Tomcat's JAASRealm instead, using your custom JAAS authentication module. If this doesn't work, you should try using one of Tomcat's supplied JAAS LoginModules instead to verify that it really is with your module. If you've determined that the problem is with your custom JAAS LoginModule, start Tomcat via "$CATALINA_HOME/bin/catalina.sh jpda start," fire up Eclipse and attach a debugger to the module. You'll find the problem soon enough. 4. Finally, once you get done with that, then you can turn on the SSO valve. Andrew On Jun 24, 2008, at 2:06 PM, Ramya KGrama wrote: > Hello, > I have been trying to implement JAAS login with JSPWiki on Tomcat. > We are > using JSPWiki 2.6.2 with Tomcat5.5 > We have an existing web application (mainApp) that does not use JAAS. > However, we would like to use JSPWiki as a portal with a single-sign- > on > feature - > meaning when the user logs into our mainApp the user clicks on a > link to > JSPWiki application. At this point, we would like to automatically > authenticate > the user with appropriate roles and permissions and log him into > JSPWiki. > > To acheive this, I have done the following but doesn't seem to work: > > 1. Tomcat server.xml: > a. I've added a <Context> tag for JSPWiki application and <Context> > tag for > mainApp with crossContext=true in both. > b. Added a <Realm> entry as such: > <Realm > className="org.apache.catalina.realm.JAASRealm" > appName="JSPWiki-custom" > > userClassNames="com.ecyrd.jspwiki.user.DefaultUserProfile" > roleClassNames="com.ecyrd.jspwiki.auth.authorize.Role" > debug="99"/> > c. Enabled SingleSignOn by adding the <Valve> tag within the <Host> > tag as > such: > <Valve > className="org.apache.catalina.authenticator.SingleSignOn" > /> > > 2. Placed my login module (JAASLoginModule's) jar file > JAASLoginLM.jar in > %TOMCAT_HOME%/common/lib folder. > In the JAASLoginModule itself I am using HttpRequestCallback just > like > the SiteMinderLoginModule example: > http://www.jspwiki.org/wiki/Security2.3WishList > > 3. I added the entries for the login module in jspwiki.policy > towards the > end as such: > > // grant LoginModule permissions > grant codebase "file:${catalina.home}/common/lib/JaasLoginLM.jar" { > permission javax.security.auth.AuthPermission "modifyPrincipals"; > }; > grant codebase "file:${catalina.home}/common/lib/JaasLoginAzn.jar" { > > permission javax.security.auth.AuthPermission > "createLoginContext.jaaslogin"; > permission javax.security.auth.AuthPermission "doAsPrivileged"; > }; > > 4. In jspwiki.properties file I enabled JAAS as such: > jspwiki.security = jaas > > 5. On tomcat startup I specify the policy file and jaas file > settings as > such: > -Djava.security.auth.login.config==C:\Program Files\Apache Software > Foundation\Tomcat 5.5\webapps\JSPWiki\WEB-INF\jspwiki.jaas > -Djava.security.policy==C:\Program Files\Apache Software Foundation > \Tomcat > 5.5\webapps\JSPWiki\WEB-INF\jspwiki.policy > > 6. Disabled container managed authentication in > <TOMCAT_HOME>/webapps/web.xml by commenting the <security-constraint> > section and > in jspwiki.properties set jspwiki.userdatabase.isSharedWithContainer > = false > > Now, I restart the server and launch the mainApp and login. After > logging > in, I click on the link to JSPWiki (http://<hostname:port>/JSPWiki/ > Wiki.jsp) > - > which takes me to the main page as an "Anonymous" user. > > I dont see JAAS being used. The logs do not show any debug messages > from my > JAASLoginModule. Instead it says - > "Checking JAAS configuration...JAAS already configured by some other > application (leaving it alone...)" > > My security configuration verifier (SecurityConfig.jsp) says that it > found > jspwiki.jaas. It doesn't show any errors - except that it says > "We found some errors with your configuration: Policy file does not > have a > keystore... at least not one that we can locate." > Do I need jspwiki.jks file and an entry in policy file - keystore > jspwiki.jks? - Currently I DO NOT have the keystore file. > > Do I need to programmatically create the LoginContext and call the > login() > method in the JSP? > My understanding was that all that would happen automatically in the > background. > I am sure I'm missing something. > > > Your help is greatly appreciated! > Thanks. |
| Free Forum Powered by Nabble | Forum Help |