jfinal整合shiro权限控制(从数据库读取配置信息)

web.xml 中配置Filter


ShiroFilter
com.xxx.jfinal.ext.shiro.JfinalShiroFilter

loginUrl
/login


authc
/login


successUrl
/home


unauthorizedUrls
/resources/**,/common/**,/dwz/**




在Filter中配置相应参数
JfinalShiroFilter.java

public class JfinalShiroFilter extends AbstractShiroFilter
{

@Override
public void init() throws Exception
{
DefaultWebSecurityManager dwsm = new DefaultWebSecurityManager(new ShiroDbRealm());
setSecurityManager(dwsm);

JfinalShiroFilterFactory factory = new JfinalShiroFilterFactory();
// factory.setLoginUrl("/login");
factory.setSuccessUrl("/home");
factory.setLoginUrl(filterConfig.getInitParameter("loginUrl"));
//factory.setSuccessUrl(filterConfig.getInitParameter("successUrl"));
Map filterChainDefinitionMap = factory.getFilterChainDefinitionMap();
filterChainDefinitionMap.put(filterConfig.getInitParameter("authc"), "authc");
String unauthorizedUrls = filterConfig.getInitParameter("unauthorizedUrls");
for(String unauthorizedurl : unauthorizedUrls.split(",")){
filterChainDefinitionMap.put(unauthorizedurl, "anon");
}
// filterChainDefinitionMap.put("/common/**", "anon");
// filterChainDefinitionMap.put("/dwz/**", "anon");
// filterChainDefinitionMap.put("/users/**", "roles[admin]");
filterChainDefinitionMap.put("/**", "user");
factory.setFilterChainDefinitionMap(filterChainDefinitionMap);

FilterChainManager manager = factory.createFilterChainManager();
PathMatchingFilterChainResolver chainResolver = new PathMatchingFilterChainResolver();
chainResolver.setFilterChainManager(manager);

setFilterChainResolver(chainResolver);
}

}

你可能感兴趣的:(jfinal)