cont'd...
Role domain object.
Code:
package com.mycompany.model.security;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import com.mycompany.model.BaseObject;
import com.mycompany.model.activedirectory.ADGroup;
import com.mycompany.model.user.PrologUserGroup;
public class Role extends BaseObject {
private static final long serialVersionUID = 5977582917018176333L;
private static String ROLE_PREFIX_ACTIVE_DIRECTORY = "ROLE_";
private static String ROLE_PREFIX_PROLOG = "ROLE_PROLOG_";
private Integer roleId;
private String description;
private String originalName;
private String name;
private String sourcePrimaryKey;
private Integer typeId;
private RoleType roleType;
private List<String> problemsHolder;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOriginalName() {
return originalName;
}
public void setOriginalName(String originalName) {
this.originalName = originalName;
}
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public RoleType getRoleType() {
return roleType;
}
public void setRoleType(RoleType roleType) {
this.roleType = roleType;
}
public String getSourcePrimaryKey() {
return sourcePrimaryKey;
}
public void setSourcePrimaryKey(String sourcePrimaryKey) {
this.sourcePrimaryKey = sourcePrimaryKey;
}
public Integer getTypeId() {
return typeId;
}
public void setTypeId(Integer typeId) {
this.typeId = typeId;
}
/**
* name is the business key. Do not change.
*
* @see java.lang.Object#equals(Object)
*/
public boolean equals(Object object) {
if (!(object instanceof Role)) {
return false;
}
Role rhs = (Role) object;
return new EqualsBuilder().
append(this.name, rhs.getName()).isEquals();
}
/**
* name is the business key. Do not change.
*
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return new HashCodeBuilder(-2067913629, -1342727107).
append(this.name).toHashCode();
}
/**
* @see java.lang.Object#toString()
*/
public String toString() {
return new ToStringBuilder(this) .append("name", this.name)
.append("description", this.description).append("typeId",
this.typeId).append("roleId", this.roleId).append(
"originalName", this.originalName).append(
"sourcePrimaryKey", this.sourcePrimaryKey).toString();
}
public static String formatActiveDirectoryGroupNameToRoleName(String groupName) {
try {
String retVal = groupName.toUpperCase();
retVal = StringUtils.replace(retVal, " ", "_");
retVal = StringUtils.replace(retVal, ",", "");
return ROLE_PREFIX_ACTIVE_DIRECTORY + retVal;
} catch (Exception e ) {
return null;
}
}
public static String formatPrologGroupNameToRoleName(String groupName) {
StringBuffer strBuffer = new StringBuffer( groupName.trim() );
return ROLE_PREFIX_PROLOG + strBuffer.toString().toUpperCase().replaceAll(" ", "_").replaceAll("/","_");
}
public static Role getRole(PrologUserGroup group) {
Role role = new Role();
role.setDescription(group.getDescription());
role.setName(Role.formatPrologGroupNameToRoleName(group.getName()));
role.setOriginalName(group.getName());
role.setSourcePrimaryKey(group.getGroupId() + "");
role.setTypeId(RoleType.PROLOG);
return role;
}
public static Role getRole(ADGroup group) {
Role role = new Role();
role.setDescription(group.getDescription());
role.setName(Role.formatActiveDirectoryGroupNameToRoleName(group.getCn()));
role.setOriginalName(group.getCn());
role.setSourcePrimaryKey(group.getDn());
role.setTypeId(RoleType.ACTIVE_DIRECTORY);
return role;
}
public List<String> getProblems() {
return problemsHolder;
}
public void setProblems(List<String> problemsHolder) {
this.problemsHolder = problemsHolder;
}
public boolean isProblemsExists(){
if(this.problemsHolder.size() > 0){
return true;
}else{
return false;
}
}
}
...spring bean definition...
Code:
<bean id="filterSecurityInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
<property name="validateConfigAttributes" value="true"/>
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="objectDefinitionSource" ref="databasePathBasedFilterInvocationDefinitionMap"/>
</bean>
<bean id="databasePathBasedFilterInvocationDefinitionMap" class="com.shawmut.security.acegisecurity.intercept.web.DatabasePathBasedFilterInvocationDefinitionMap">
<property name="securityService" ref="securityService"/>
</bean>