Subversion Repositories bacoAlunos

Rev

Rev 1617 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1617 jmachado 1
package pt.estgp.estgweb.filters.filters;
2
 
3
import org.apache.log4j.Logger;
4
import pt.estgp.estgweb.Globals;
5
import pt.estgp.estgweb.domain.UserSession;
6
import pt.estgp.estgweb.filters.chains.AdminControlFilter;
7
import pt.estgp.estgweb.filters.exceptions.AccessDeniedOperationException;
8
import pt.estgp.estgweb.filters.exceptions.NeedAuthenticationException;
9
import pt.estgp.estgweb.utils.ConfigProperties;
10
import pt.estgp.estgweb.utils.RoleManager;
11
import pt.utl.ist.berserk.ServiceRequest;
12
import pt.utl.ist.berserk.ServiceResponse;
13
import pt.utl.ist.berserk.logic.filterManager.FilterParameters;
14
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException;
15
 
16
public class ParameterValuePrefixCheck extends AdminControlFilter {
17
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(ParameterValuePrefixCheck.class);
18
 
19
    private static final 1.5.0/docs/api/java/lang/String.html">String ALL_ROLE = ConfigProperties.getProperty("user.super");
20
 
21
    public void execute(ServiceRequest request, ServiceResponse response)
22
            throws FilterException, 1.5.0/docs/api/java/lang/Exception.html">Exception
23
    {
24
 
25
    }
26
 
27
    public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, 1.5.0/docs/api/java/lang/Exception.html">Exception
28
    {
29
 
30
        UserSession userSession = (UserSession) request.getServiceParameters().getParameter(Globals.USER_SESSION_KEY);
31
 
32
        if(userSession.getUser() == null)
33
        {
34
            logger.info("try access restricted area:" + request.getRequester());
35
            throw new NeedAuthenticationException();
36
        }
37
        if(RoleManager.hasRole(userSession.getUser(),ALL_ROLE) || userSession.getUser().isSuperuser())
38
            return;
39
 
40
        1.5.0/docs/api/java/lang/String.html">String parameterName = (1.5.0/docs/api/java/lang/String.html">String) filterParameters.getParameter(0);
41
        1.5.0/docs/api/java/lang/String.html">String parameterPrefix = (1.5.0/docs/api/java/lang/String.html">String) filterParameters.getParameter(1);
1667 jmachado 42
        if(filterParameters.getParameter(parameterName) != null)
43
        {
44
            1.5.0/docs/api/java/lang/String.html">String parameter = (1.5.0/docs/api/java/lang/String.html">String) filterParameters.getParameter(parameterName);
45
            if(parameter.startsWith(parameterPrefix))
46
            {
47
                return;
48
            }
49
        }
50
        throw new AccessDeniedOperationException("fail.prefix.parameter");
1617 jmachado 51
    }
52
}