}
@Override
public int doStartTag() throws PageException {
Resource rolesDir = pageContext.getConfig().getConfigDir().getRealResource("roles");
CredentialImpl login = new CredentialImpl(name,password,roles,rolesDir);
pageContext.setRemoteUser(login);
Tag parent=getParent();
while(parent!=null && !(parent instanceof Login)) {
parent=parent.getParent();
}
ApplicationContext appContext = pageContext.getApplicationContext();
if(parent!=null) {
int loginStorage = appContext.getLoginStorage();
String name=Login.getApplicationName(appContext);
if(loginStorage==Scope.SCOPE_SESSION && pageContext.getApplicationContext().isSetSessionManagement())
pageContext.sessionScope().set(KeyImpl.init(name),login.encode());
else {//if(loginStorage==Scope.SCOPE_COOKIE)
pageContext.cookieScope().setCookie(KeyImpl.init(name),login.encode(),
-1,false,"/",Login.getCookieDomain(appContext));
}
}