daomethoddefinitionmapprovider.java

来自「一个关于tlms的一个小程序 看看能否帮助到别人」· Java 代码 · 共 62 行

JAVA
62
字号
package com.szmx.component.security.acegipro.providers.dao;

import com.szmx.component.security.acegipro.permissiondetails.MethodPermissionDetailsService;
import com.szmx.component.security.acegipro.permissiondetails.MethodPermissionDetails;
import com.szmx.component.security.acegipro.intercept.method.OpenedMethodDefinitionMap;
import org.acegisecurity.intercept.method.MethodDefinitionMap;
import org.acegisecurity.ConfigAttributeDefinition;
import org.acegisecurity.ConfigAttributeEditor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.util.Map;
import java.util.Iterator;

/**
 * ================================================================
 * Copyright 2006 szmx
 * <p/>
 * Change Revision
 * ---------------------------------------------------------------
 * Date          Author            Remarks
 * Mar 13, 2006     bzhang      Create class com.szmx.base.security.acegipro.providers.dao.DaoMethodDefinitionMapProvider
 * ================================================================
 */
public class DaoMethodDefinitionMapProvider {
    private static final Log logger = LogFactory.getLog(DaoMethodDefinitionMapProvider.class);
    private MethodPermissionDetailsService methodPermissionDetailsService;

    //~Setter ================================================================

    public void setMethodPermissionDetailsService(MethodPermissionDetailsService methodPermissionDetailsService) {
        this.methodPermissionDetailsService = methodPermissionDetailsService;
    }

    //~Method ===============================================================

    /**
     * Retrieve the DaoFilterInvocationDefinitionMap from Serivce.
     * @return FilterInvocationDefinitionMap
     */
    public MethodDefinitionMap getDaoMethodDefinitionMap() {
        // must be opened MethodDefinitionMap, for using publicly lookupAttributes.
        MethodDefinitionMap methodDefinitionMap = new OpenedMethodDefinitionMap();

        Map methodPermsMap = methodPermissionDetailsService.loadMethodPermissionDetails();
        Iterator methods = methodPermsMap.keySet().iterator();
        while (methods.hasNext()) {
            String method = (String) methods.next();
            String roleNames = ((MethodPermissionDetails) methodPermsMap.get(method)).getRoleNames();

            ConfigAttributeEditor configAttribEd = new ConfigAttributeEditor();
            configAttribEd.setAsText(roleNames);
            ConfigAttributeDefinition attrDef = (ConfigAttributeDefinition) configAttribEd.getValue();

            methodDefinitionMap.addSecureMethod(method, attrDef);
        }

        logger.debug("Provided MethodDefinitionMap by Service =" + methodDefinitionMap);
        return methodDefinitionMap;
    }
}

⌨️ 快捷键说明

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