Hi,
I know that I can access the username in my login module. This is what
I already do in my authenticate method:
protected void authenticate() throws LoginException
{
log("CustomRealm Auth
Info:_username:"+_username+";_password:"+_password+";_currentrealm:"
+_currentRealm);
// Get the current realm and check whether it is instance of your realm
if (!(_currentRealm instanceof IODS9Realm))
{
throw new LoginException("simplecustomrealm:badrealm");
}
IODS9Realm myCustomRealm = (IODS9Realm)_currentRealm;
String[] grpList = myCustomRealm.authenticate(_username, _password);
if (grpList == null) // JAAS behavior
{
throw new LoginException("customrealm:Login Failed with user
" +_username);
}
log("login succeeded for " + _username);
// Add the code related to authenticating to your user database.
String[] groupListToForward = (String[])grpList.clone();
/*
* Call the commitAuthentication to populate grpList with the
* set of groups to which _username belongs in this realm.
*/
commitAuthentication(_username, _password, _currentRealm,
groupListToForward);
}
If the login fails the LoginException will be thrown and the
application will redirect to my error page defined in the web xml. In
that error page (it's a Struts action) I need to know the username.
And I don't know how to get it.
2009/6/5 Kumar Jayanti <Vbkumar.Jayanti_at_sun.com>:
> JasDA_at_web.de wrote:
>>
>> Hi,
>>
>> at the moment we are trying to get our old Tomcat 5 applications to work
>> in Glassfish v2. I've implemented a custom realm for authentication and it
>> works fine. But I have the following problem:
>> If a user enters a wrong password the user will be redirected to an error
>> page:
>>
>> <login-config>
>> <auth-method>FORM</auth-method>
>> <realm-name>iods9Realm</realm-name>
>> <form-login-config>
>> <form-login-page>/login.jsp</form-login-page>
>> <form-error-page>/loginError.do</form-error-page>
>> </form-login-config>
>> </login-config>
>>
>> As you can see we're using Struts (I guess it's V1.x). My action looks
>> like this:
>>
>> public void doExecute(ActionContext ctx) throws Exception
>> {
>> String text = "";
>> if (ctx.request().getParameter("loginTimeout") != null)
>> {
>> .......
>> }
>> else
>> {
>> String userName = ctx.request().getParameter("j_username");
>> .....
>> }
>> ctx.forwardByName("loginPage");
>> }
>>
>> In our tomcat environment all parameters (j_username, ...) were available
>> in this action. Now in our glassfish environment the parameters map is empty
>> so I can't get the username. Is there any chance to geht the username?
>> Perhaps it is possible to access the request from my custom realm that
>> extends the IASRealm?
>>
>
> You can access username inside your Login Module, if your JAAS LoginModule
> extends
>
> com.sun.appserv.security.AppservPasswordLoginModule
>
> then this class has protected members :
>
> protected String _username;
> protected String _password;
> protected Realm _currentRealm;
>
> Does that help you in any way.
>
> Thanks
>
>> Regards,
>> Jason
>> __________________________________________________________
>> WEB.DE FreeDSL mit DSL 6.000 Flatrate und Telefonanschluss
>> für 17,95 Euro/mtl.!* http://produkte.web.de/go/02/
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>