Hi,
I can get the user id attribute from my authenticatedWebSession in a
role-needed page.
But I can't get user id when I go to no-role-needed page.
Do I need to override newSession() method in WebApplication?
Please help me~
Belows are my classes:
public class HelloWorldApplication extends AuthenticatedWebApplication
{
@Override
protected Class<? extends AuthenticatedWebSession> getWebSessionClass()
{
return MyAuthenticatedWebSession.class;
}
@Override
protected Class<? extends WebPage> getSignInPageClass()
{
return MySignInPage.class;
}
}
public class MyAuthenticatedWebSession extends AuthenticatedWebSession
{
public MyAuthenticatedWebSession(Request request)
{
super(request);
}
@Override
public boolean authenticate(String username, String password)
{
//do some authentication process
setAttribute("userId", username);
return true;
}
@Override
public Roles getRoles()
{
if(isSignedIn())
{
Roles roles = getUserRoles();
if(roles == null)
{
roles = new Roles();
roles.add("ROLE_USER");
}
return roles;
}
return null;
}
public static MyAuthenticatedWebSession get()
{
return (MyAuthenticatedWebSession) Session.get();
}
public String getUserId()
{
return (String) getAttribute("userId");
}
public Roles getUserRoles()
{
return (Roles) getAttribute("roles");
}
}
--
------------------
~Mia は 最高!~
------------------