⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initsecuritydaojdbc.java

📁 ACEGI数据库保存 ACEGI数据库保存 ACEGI数据库保存
💻 JAVA
字号:
/*
 * Copyright 2004-2005 wangz.
 * Project shufe_newsroom
 */
package com.skyon.um.security.acegi.demo;

import net.sf.acegisecurity.providers.dao.SaltSource;
import net.sf.acegisecurity.providers.encoding.PasswordEncoder;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationEvent;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.util.Assert;

import com.skyon.framework.util.UUIDHexGen;
import com.skyon.um.security.acegi.IConst;
import com.skyon.um.security.acegi.intercept.event.FilterInvocationDefinitionSourceChangedEvent;

/**
 * @since 2005-8-5
 * @author 王政
 * @version $Id: InitSecurityDaoJdbc.java,v 1.3 2005/10/12 12:48:15 wangzheng Exp $
 */
public class InitSecurityDaoJdbc extends JdbcDaoSupport implements
        InitSecurityDao, ApplicationContextAware {

	private ApplicationContext applicationContext;
	
	private PasswordEncoder passwordEncoder;
	
	private SaltSource saltSource;
	
	// delete data sqls
    private String delUserRelRole = " delete from userrelrole ";
    private String delPermission = " delete from permission ";
    private String delUser = " delete from user ";
    private String delRole = " delete from role ";
    private String delResource = " delete from resource ";
    
    // re-add data sqls
    private String initUser = " insert into user (userName, password, enabled) values (?, ?, ?) ";
    private String initRole = " insert into role (roleName, description ) values ( ?, ? )";
    private String initResource = " insert into resource (resourceId, resourceName, parentName, action, layer, display, expression, title) values ( ?, ?, ?, ?, ?, ?, ?, ? ) ";
    private String initUserRelRole = " insert into userrelrole (userName, roleName) values ( ?, ? ) ";
    private String initPermission = " insert into permission (permissionId, roleName, resourceId) values ( ?, ?, ? ) ";
        
    
    private String[][] roleValues = new String[][] {
            {"admin", "管理员"},
            {"general", "一般用户"},
            {"ANONYMOUS", "匿名用户"}
    };
    
    private String[][] userRelRoleValues = new String[][] {
            {"admin", "admin"},
            {"common", "general"},
            {"333", "general"},
    };
    
    private String resourceId1 = UUIDHexGen.getUUIDHex();
    private String resourceId2 = UUIDHexGen.getUUIDHex();
    private String resourceId3 = UUIDHexGen.getUUIDHex();
    private String resourceId4 = UUIDHexGen.getUUIDHex();
    private String resourceId5 = UUIDHexGen.getUUIDHex();
    private String resourceId6 = UUIDHexGen.getUUIDHex();
    private String resourceId7 = UUIDHexGen.getUUIDHex();
    private String resourceId8 = UUIDHexGen.getUUIDHex();
    private String resourceId9 = UUIDHexGen.getUUIDHex();
    private String resourceId10 = UUIDHexGen.getUUIDHex();
    private String resourceId11 = UUIDHexGen.getUUIDHex();
    
    private String resourceName1 = getResourceName();
    private String resourceName2 = getResourceName();
    private String resourceName3 = getResourceName();
    private String resourceName4 = getResourceName();
    private String resourceName5 = getResourceName();
    private String resourceName6 = getResourceName();
    private String resourceName7 = getResourceName();
    private String resourceName8 = getResourceName();
    private String resourceName9 = getResourceName();
    private String resourceName10 = getResourceName();
    private String resourceName11 = getResourceName();
    
    private String[][] reourceValues = new String[][] {
            {resourceId1, resourceName1, null, "/admin.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "管理员菜单"}, 
            {resourceId2, resourceName2, resourceName1, "/acegiTag.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "Acegi Taglib 演示"},    
            {resourceId3, resourceName3, resourceName1, "/dynaPermission.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "动态分配权限演示"},
            {resourceId4, resourceName4, resourceName1, "/testException.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "异常处理演示"},
            {resourceId5, resourceName5, null, "/general.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "普通用户菜单"},    
            {resourceId6, resourceName6, resourceName5, "/userSave!default.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "数据验证演示"},
            {resourceId7, resourceName7, resourceName5, "/fileUpload!default.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "文件上传演示"},
            {resourceId8, resourceName8, resourceName5, "/userList.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "分页功能演示"},  
            {resourceId9, resourceName9, null, "/activeUsers.action", IConst.WEB_LAYER, IConst.BOOLEAN_FALSE, IConst.BOOLEAN_TRUE, "在线用户列表"},
            {resourceId10, resourceName10, null, "/mainMenu.action", IConst.WEB_LAYER, IConst.BOOLEAN_FALSE, IConst.BOOLEAN_TRUE, "主菜单"},
            {resourceId11, resourceName11, resourceName1, "/forceLogoutDefault.action", IConst.WEB_LAYER, IConst.BOOLEAN_TRUE, IConst.BOOLEAN_TRUE, "强制登出用户"}
    };
       
    private String permissionId1 = UUIDHexGen.getUUIDHex();
    private String permissionId2 = UUIDHexGen.getUUIDHex();
    private String permissionId3 = UUIDHexGen.getUUIDHex();
    private String permissionId4 = UUIDHexGen.getUUIDHex();
    private String permissionId5 = UUIDHexGen.getUUIDHex();
    private String permissionId6 = UUIDHexGen.getUUIDHex();
    private String permissionId7 = UUIDHexGen.getUUIDHex();
    private String permissionId8 = UUIDHexGen.getUUIDHex();
    private String permissionId9 = UUIDHexGen.getUUIDHex();
    private String permissionId10 = UUIDHexGen.getUUIDHex();
    private String permissionId11 = UUIDHexGen.getUUIDHex();
    private String permissionId12 = UUIDHexGen.getUUIDHex();
    private String permissionId13 = UUIDHexGen.getUUIDHex();
    private String permissionId14 = UUIDHexGen.getUUIDHex();
    private String permissionId15 = UUIDHexGen.getUUIDHex();
    private String permissionId16 = UUIDHexGen.getUUIDHex();
    private String permissionId17 = UUIDHexGen.getUUIDHex();
    
    private String[][] permissionValues = new String[][] {
            {permissionId1, "admin", resourceId1},
            {permissionId2, "admin", resourceId2},
            {permissionId3, "admin", resourceId3},
            {permissionId4, "admin", resourceId4},
            {permissionId5, "admin", resourceId5},
            {permissionId6, "admin", resourceId6},
            {permissionId7, "admin", resourceId7},
            {permissionId8, "admin", resourceId8},
            {permissionId9, "general", resourceId5},
            {permissionId10, "general", resourceId6},
            {permissionId11, "general", resourceId7},
            {permissionId12, "general", resourceId8},
            {permissionId13, "ANONYMOUS", resourceId7},
            {permissionId14, "admin", resourceId9},
            {permissionId15, "admin", resourceId10},
            {permissionId17, "admin", resourceId11},
            {permissionId16, "general", resourceId10}
    };
    
    
    private String[][] permissionValues2 = new String[][] {
            {permissionId1, "admin", resourceId1},
            {permissionId2, "admin", resourceId2},
            {permissionId3, "admin", resourceId3},
            {permissionId4, "admin", resourceId4},
            {permissionId9, "general", resourceId5},
            {permissionId10, "general", resourceId6},
            {permissionId11, "general", resourceId7},
            {permissionId12, "general", resourceId8},
            {permissionId13, "ANONYMOUS", resourceId7},
            {permissionId14, "admin", resourceId9},
            {permissionId15, "admin", resourceId10},
            {permissionId16, "general", resourceId10}
    };
    

	private String getEncryptedPassword(String rawPass) {
    	return getPasswordEncoder().encodePassword(rawPass, getSaltSource());
    }
	
	public static String getResourceName() {
		return "resource_" + UUIDHexGen.getUUIDHex();
	}
	
	public String[][] getUserValues() {
		return new String[][] {
	            {"admin", getEncryptedPassword("admin"), IConst.BOOLEAN_TRUE},
	            {"common", getEncryptedPassword("common"), IConst.BOOLEAN_TRUE},
	            {"333", getEncryptedPassword("333"), IConst.BOOLEAN_TRUE},
	            {"000", getEncryptedPassword("000"), IConst.BOOLEAN_TRUE},
	            {"444", getEncryptedPassword("444"), IConst.BOOLEAN_TRUE},
	            {"555", getEncryptedPassword("555"), IConst.BOOLEAN_TRUE},
	            {"666", getEncryptedPassword("666"), IConst.BOOLEAN_TRUE},
	            {"777", getEncryptedPassword("777"), IConst.BOOLEAN_TRUE},
	            {"888", getEncryptedPassword("888"), IConst.BOOLEAN_TRUE},
	            {"999", getEncryptedPassword("999"), IConst.BOOLEAN_TRUE},
	            {"aaa", getEncryptedPassword("aaa"), IConst.BOOLEAN_TRUE},
	            {"bbb", getEncryptedPassword("bbb"), IConst.BOOLEAN_TRUE}
	    };
	}
    
    
    
    /**
     * @see org.summerfragrance.security.acegi.demo.InitSecurityDao#init()
     */
    public void init() {
        //delete data
        getJdbcTemplate().update(delUserRelRole);
        getJdbcTemplate().update(delPermission);
        getJdbcTemplate().update(delUser);
        getJdbcTemplate().update(delRole);
        getJdbcTemplate().update(delResource);
        
        //re-add data
        execute(initUser, getUserValues());
        execute(initRole, roleValues);
        execute(initResource, reourceValues);
        execute(initUserRelRole, userRelRoleValues);
        execute(initPermission, permissionValues);
        
		ApplicationEvent event = new FilterInvocationDefinitionSourceChangedEvent("hi");
		getApplicationContext().publishEvent(event);
    }
    
	public void reAssignPermission() {
		getJdbcTemplate().update(delPermission);		
		execute(initPermission, permissionValues2);
		
		//publish event to notity listener
		ApplicationEvent event = new FilterInvocationDefinitionSourceChangedEvent(" Hello, soure chantged");
		getApplicationContext().publishEvent(event);
	}
        
    private void execute(String sql, String[][]values) {
        for (int i = 0; i < values.length; i++) {
            getJdbcTemplate().update(sql, values[i]);
        }
    }



	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		this.applicationContext = applicationContext;		
	}



	public ApplicationContext getApplicationContext() {
		return applicationContext;
	}

	protected void initDao() throws Exception {		
		super.initDao();
		Assert.notNull(getApplicationContext(), " applicationContext is required ");
	}
    
	
    /**
	 * @return Returns the passwordEncoder.
	 */
	public PasswordEncoder getPasswordEncoder() {
		return passwordEncoder;
	}



	/**
	 * @param passwordEncoder The passwordEncoder to set.
	 */
	public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
		this.passwordEncoder = passwordEncoder;
	}



	/**
	 * @return Returns the saltSource.
	 */
	public SaltSource getSaltSource() {
		return saltSource;
	}



	/**
	 * @param saltSource The saltSource to set.
	 */
	public void setSaltSource(SaltSource saltSource) {
		this.saltSource = saltSource;
	}
}



⌨️ 快捷键说明

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