基于Spring框架的Shiro配置
来源:互联网 发布:网络教育学位证好拿吗 编辑:程序博客网 时间:2024/05/21 03:16
一、在web.xml中添加shiro过滤器
Xml代码
- <!--
Shiro filter--> - <filter>
-
<filter-name>shiroFilter</filter-name> -
<filter-class> -
org.springframework.web.filter.DelegatingFilterProxy -
</filter-class> - </filter>
- <filter-mapping>
-
<filter-name>shiroFilter</filter-name> -
<url-pattern>/*</url-pattern> - </filter-mapping>
二、在Spring的applicationContext.xml中添加shiro配置
1、添加shiroFilter定义,此id的定义必须和web.xml中<filter-mapping>下的filter-name保存一致。
- <!--
Shiro Filter --> - <bean
id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> -
<property name="securityManager" ref="securityManager" /> -
<property name="loginUrl" value="/login" /> -
<property name="successUrl" value="/user/list" /> -
<property name="unauthorizedUrl" value="/login" /> -
<property name="filterChainDefinitions"> -
<value> -
/login = anon -
/user/** = authc -
/role/edit/* = perms[role:edit] -
/role/save = perms[role:edit] -
/role/list = perms[role:view] -
/** = authc -
</value> -
</property> - </bean>
2、添加securityManager定义
- <bean
id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManage r" > -
<property name="realm" ref="myRealm" /> - </bean>
3、添加realm定义
- <bean
id=" myRealm" class="com...MyRealm" />
三、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法
- public
class MyRealm extendsAuthorizingRealm{ -
-
private AccountManager accountManager; -
public void setAccountManager(AccountManager accountManager) { -
this.accountManager = accountManager; -
} -
-
授权信息 -
protected AuthorizationInfo doGetAuthorizationInfo( -
PrincipalCollection principals) { -
String username=(String)principals.fromRealm(getName()).iterator().next(); -
if( username null!= ){ -
User user = accountManager.get( username ); -
if( user null!= && nulluser.getRoles() != ){ -
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); -
for( SecurityRole each: user.getRoles() ){ -
info.addRole(each.getName()); -
info.addStringPermissions(each.getPermissionsAsString()); -
} -
return info; -
} -
} -
return null; -
} -
-
认证信息 -
protected AuthenticationInfo doGetAuthenticationInfo( -
AuthenticationToken authcToken ) throws AuthenticationException { -
UsernamePasswordToken token = (UsernamePasswordToken) authcToken; -
String userName = token.getUsername(); -
if( userName null!= && "".equals(userName)! ){ -
User user = accountManager.login(token.getUsername(), -
String.valueOf(token.getPassword())); -
-
if( user null!= ) -
return new SimpleAuthenticationInfo ( -
user.getLoginName(),user.getPassword(), getName()); -
} -
return null; -
} -
- }
0 0
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- Shiro配置---基于spring框架
- 基于spring的shiro配置
- 基于spring的shiro配置
- JQuery中$.ajax()方法参数详解
- 【oracle学习】11.数据字典
- jQuery Ajax 实例 ($.ajax、$.post、$.get)
- keepalived
- Spring 框架入门(1)
- 基于Spring框架的Shiro配置
- Swift语法08.字典
- [Android] Notification.setLatestEventInfo()方法被移除的问题
- Vi命令详解
- fedy - formerly Fedora Utils
- hdu 3763 CD
- 三种工厂模式以及它们之间的关系
- c++ 写 php 扩展
- 解决window.location.href不跳转,无反应,不执行的问题