serviceauthorizer.java

来自「一个很好的开源项目管理系统源代码」· Java 代码 · 共 47 行

JAVA
47
字号
package net.java.workeffort.service.security;import net.java.workeffort.infrastructure.security.AuthorizationException;import net.java.workeffort.infrastructure.security.ISecurityProfile;import org.aopalliance.intercept.MethodInvocation;import org.apache.commons.lang.StringUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * Generic Service authorizer. * <p> * Uses <code>SecurityProfile</code> of the user for authorization. * @author Antony Joseph */public class ServiceAuthorizer implements IServiceAuthorizer {    protected static final Log log = LogFactory.getLog(ServiceAuthorizer.class);    public void preMethodInvocation(ISecurityProfile securityProfile,            MethodInvocation invocation) throws AuthorizationException {        int accessDecision = securityProfile.getAccessDecision(                getTarget(invocation), invocation.getMethod().getName());        if (accessDecision == ISecurityProfile.DENIED) {            throw new AuthorizationException("Authorization failed. partyCd="                    + securityProfile.getPartyCd() + " target="                    + getTarget(invocation) + " operation="                    + invocation.getMethod().getName());        }    }    /**     * Does nothing     */    public void postMethodInvocation(ISecurityProfile securityProfile,            MethodInvocation invocation, Object resultObject)            throws AuthorizationException {    }    private String getTarget(MethodInvocation invocation) {        return StringUtils.substringAfterLast(invocation.getThis().getClass()                .getName(), ".");    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?