
com.jpattern.gwt.client.navigationevent.ABaseNavigationEvent Maven / Gradle / Ivy
package com.jpattern.gwt.client.navigationevent;
import com.jpattern.gwt.client.ApplicationProxy;
import com.jpattern.gwt.client.IApplicationProvider;
import com.jpattern.gwt.client.logger.ILogger;
import com.jpattern.gwt.client.session.ISecurityContext;
/**
*
* @author Francesco Cina'
*
* Nov 28, 2011
*/
public abstract class ABaseNavigationEvent implements IBaseNavigationEvent {
private final String name;
private final String[] allowedRoles;
private final boolean requireAuthentication;
private IApplicationProvider provider;
private final ILogger logger;
public ABaseNavigationEvent(String name, boolean requireAuthentication, String[] allowedRoles, IApplicationProvider provider) {
this.name = name;
this.requireAuthentication = requireAuthentication;
this.allowedRoles = allowedRoles;
this.provider = provider;
logger = provider.getLoggerService().getLogger(getClass());
}
@Override
public final String getName() {
return name;
}
@Override
public final boolean isUserAuthorized() {
ISecurityContext securityContext = getProvider().getSession().getSecurityContext();
logger.debug("isUserAuthorized", "Check authorisation of user " + securityContext.getUserData().getUsername());
if (isRequireAuthentication() && !securityContext.isUserValid()) {
logger.debug("isUserAuthorized", "User is not valid, a valid user is required");
return false;
}
boolean allowed = securityContext.isUserInRole(allowedRoles);
logger.debug("isUserAuthorized", "Is user allowed? " + allowed + " (Required roles: " + allowedRoles + ")" );
return allowed;
}
@Override
public final String[] getAllowedRole() {
return allowedRoles;
}
@Override
public final IApplicationProvider getProvider() {
if (provider == null) {
provider = ApplicationProxy.getInstance().getApplicationProvider();
}
return provider;
}
@Override
public boolean isRequireAuthentication() {
return requireAuthentication;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy