Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Error in integrating Simple JAAS with Tomcat 5.0

 
avaya sahu
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am working on security module with the following requirement.
1. Authentication should happen once using basic authentication.

2. Any subsequent request should go through the process but should not do the actual authentication rather should check the data from session.

can some provide me sample class and configuration detail to integrate simple LoginModule. At this point I don't have any Autherization requirement, all modules are accessible to all authenticated user. Authentication criteria: user name should same as password.


I have tried it by reading some document. I am able to complete the authentication part I belive but authorization is not working.
Below are the files and steps that I have performed.

web.xml Change
============
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>admin</role-name>
</security-role>
<!-- Define the Login Configuration for this Application -->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Your Realm</realm-name>
</login-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>


jaas config:
=========
DemoSP {
HttpLoginModule required debug=true;
};

server.xml
==========

<Realm className="org.apache.catalina.realm.JAASRealm"
appName="DemoSP"
userClassNames="SamplePrincipal"
roleClassNames="SampleGroupPrincipal"
useContextClassLoader="true"
debug="99"/>


HttpLoginModule.java
===============
public class HttpLoginModule implements LoginModule {
public boolean login() throws LoginException {
String username = null;
String password = null;
try {
callbackHandler.handle(callbacks);
username = ((NameCallback) callbacks[0]).getName();
password = new String(((PasswordCallback) callbacks[1]).getPassword());
} catch (IOException e) {
throw new LoginException(e.toString());
} catch (UnsupportedCallbackException e) {
throw new LoginException(e.toString());
}
userPrincipal = new SamplePrincipal(username);
return true;
}
public boolean commit() throws LoginException {
return true;
}
//default implementation for others
}

JDK argument :
===========
-Djava.security.auth.login.config==jaas.config

Thanks
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic