📄 initsecuritydaojdbc.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 + -