📄 basesecuritymanager.java
字号:
package com.easyjf.web.interceptor.security;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.easyjf.util.AntPathMatcher;
public abstract class BaseSecurityManager implements ISecurityManager {
private Map url2ConditionMap=new HashMap();
private ICondition defaultCondition;
public BaseSecurityManager() throws SecurityException{
init();
}
abstract protected void init() throws SecurityException;
public Map getUrl2ConditionMap() {
return url2ConditionMap;
}
public void setUrl2ConditionMap(Map url2ConditionMap) {
this.url2ConditionMap = url2ConditionMap;
}
public List findCondition(HttpServletRequest request,
HttpServletResponse response) throws SecurityException{
// TODO Auto-generate method stub
AntPathMatcher pathMatcher=new AntPathMatcher();
List matchCondition=new ArrayList();
String url=this.mergeUrl(request);
if(this.getUrl2ConditionMap().size()>0){
for(Iterator it=this.getUrl2ConditionMap().keySet().iterator();it.hasNext();){
String pattern=(String)it.next();
if(pathMatcher.match(pattern, url)){
matchCondition.add(this.url2ConditionMap.get(pattern));
}
}
}else{
matchCondition.add(this.getDefaultCondition());
}
return matchCondition;
}
protected void registerCondition(String urlPattern,ICondition condition){
if(urlPattern.equals("/*")){
this.defaultCondition=condition;
}else{
this.url2ConditionMap.put(urlPattern, condition);
}
}
public ICondition getDefaultCondition() {
return defaultCondition;
}
public void setDefaultCondition(ICondition defaultCondition) {
this.defaultCondition = defaultCondition;
}
protected String mergeConditionName(ICondition condition){
return condition.getClass().getName()+condition.getName();
}
protected String mergeUrl(HttpServletRequest request){
String servletPath = request.getPathInfo();
if (servletPath == null)
servletPath = request.getServletPath();
return servletPath;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -