rdbmsbasedfilterinvocationdefinitionmap.java
来自「一个关于tlms的一个小程序 看看能否帮助到别人」· Java 代码 · 共 105 行
JAVA
105 行
package com.szmx.component.security.acegipro.intercept.web;
import com.szmx.component.security.acegipro.providers.dao.DaoFilterInvocationDefinitionMapProvider;
import org.acegisecurity.ConfigAttributeDefinition;
import org.acegisecurity.intercept.web.*;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
import java.util.Iterator;
/**
* ================================================================
* Copyright 2006 szmx
* <p/>
* Change Revision
* ---------------------------------------------------------------
* Date Author Remarks
* Mar 13, 2006 bzhang Create class com.szmx.base.security.acegipro.intercept.web.RdbmsBasedFilterInvocationDefinitionMap
* ================================================================
*/
public class RdbmsBasedFilterInvocationDefinitionMap
extends AbstractFilterInvocationDefinitionSource
{
//~ Static fields/initializers =============================================
private static final Log logger = LogFactory.getLog(RdbmsBasedFilterInvocationDefinitionMap.class);
private static final String EXP_PATTERN_TYPE_ANT = "PATTERN_TYPE_APACHE_ANT";
private static final String EXP_PATTERN_TYPE_PERL5 = "PATTERN_TYPE_PERL5_REGEXP";
//~ Instance fields ========================================================
private boolean convertUrlToLowercaseBeforeComparison = true;
private String expressionPatternType = EXP_PATTERN_TYPE_ANT;
private DaoFilterInvocationDefinitionMapProvider daoFilterInvocationDefinitionMapProvider = null;
private FilterInvocationDefinitionSource daoFilterInvocationDefinitionSource = null; // cache
//~ Methods ================================================================
public Iterator getConfigAttributeDefinitions() {
return getDaoFilterInvocationDefinitionSource().getConfigAttributeDefinitions();
}
public ConfigAttributeDefinition lookupAttributes(String url) {
FilterInvocationDefinitionSource definitionSource = getDaoFilterInvocationDefinitionSource();
if (PathBasedFilterInvocationDefinitionMap.class.isInstance(definitionSource)) {
return ((PathBasedFilterInvocationDefinitionMap)definitionSource).lookupAttributes(url);
} else if (RegExpBasedFilterInvocationDefinitionMap.class.isInstance(definitionSource)) {
return ((RegExpBasedFilterInvocationDefinitionMap)definitionSource).lookupAttributes(url);
} else {
String msg = "Wrong type of " + definitionSource
+ ", it should be " + RegExpBasedFilterInvocationDefinitionMap.class
+ " or " + PathBasedFilterInvocationDefinitionMap.class;
logger.error(msg);
throw new IllegalStateException(msg);
}
}
/**
* Reload FilterInvocationDefinitionSource Object From DAO
* & stored as property daoFilterInvocationDefinitionSource
*/
public void retrieveDaoFilterInvocationDefinitionSource() {
FilterInvocationDefinitionMap definitionSource;
if (EXP_PATTERN_TYPE_ANT.equals(expressionPatternType)) {
definitionSource = new PathBasedFilterInvocationDefinitionMap();
} else if (EXP_PATTERN_TYPE_PERL5.equals(expressionPatternType)) {
definitionSource = new RegExpBasedFilterInvocationDefinitionMap();
} else {
String msg = "Wrong expression pattern type value.";
logger.error(msg);
throw new IllegalArgumentException(msg);
}
definitionSource.setConvertUrlToLowercaseBeforeComparison(convertUrlToLowercaseBeforeComparison);
if (daoFilterInvocationDefinitionMapProvider == null) {
String msg = "None DaoFilterInvocationDefinitionMapProvider setted.";
logger.error(msg);
throw new IllegalArgumentException(msg);
}
// load definitionMap from datasource.
daoFilterInvocationDefinitionSource = (FilterInvocationDefinitionSource)
daoFilterInvocationDefinitionMapProvider.getDaoFilterInvocationDefinitionMap(definitionSource);
logger.debug("Retrieved DaoFilterInvocationDefinitionSource = "
+ daoFilterInvocationDefinitionSource);
}
//~ Getter & Setter ========================================================
public void setConvertUrlToLowercaseBeforeComparison(boolean convertUrlToLowercaseBeforeComparison) {
this.convertUrlToLowercaseBeforeComparison = convertUrlToLowercaseBeforeComparison;
}
public void setExpressionPatternType(String expressionPatternType) {
this.expressionPatternType = expressionPatternType;
}
public void setDaoFilterInvocationDefinitionMapProvider(DaoFilterInvocationDefinitionMapProvider daoFilterInvocationDefinitionMapProvider) {
this.daoFilterInvocationDefinitionMapProvider = daoFilterInvocationDefinitionMapProvider;
}
public FilterInvocationDefinitionSource getDaoFilterInvocationDefinitionSource() {
if (daoFilterInvocationDefinitionSource == null) {
retrieveDaoFilterInvocationDefinitionSource();
}
return daoFilterInvocationDefinitionSource;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?