基于Spring框架的Shiro配置
来源:互联网 发布:北京房产淘宝拍卖网 编辑:程序博客网 时间:2024/05/21 01:44
一、在web.xml中添加shiro过滤器
二、在Spring的applicationContext.xml中添加shiro配置
1、添加shiroFilter定义
2、添加securityManager定义
3、添加realm定义
三、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法
- <!-- 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定义
- <!-- 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.DefaultWebSecurityManager">
- <property name="realm" ref="myRealm" />
- </bean>
3、添加realm定义
- <bean id=" myRealm" class="com...MyRealm" />
三、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法
- public class MyRealm extends AuthorizingRealm{
- 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 && user.getRoles() != null ){
- 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配置
- AutoCAD 的 AccoreConsole - 第一篇(简介)
- 人脸识别技术大总结1——Face Detection & Alignment
- acdream 1685(并查集)
- JVM调优总结(四)-垃圾回收面临的问题
- Android 编程下设置 Activity 切换动画
- 基于Spring框架的Shiro配置
- Java网络编程从入门到精通(15):为什么要使用SocketAddress来管理网络地址
- Xcode 6制作动态及静态Framework
- 解决Unsupported major.minor version 51.0错误
- JVM调优总结(五)-分代垃圾回收详述(1)
- 字符串读写函数fgets
- Android性能优化典范
- 选择屏幕的下拉 Test
- MobilePhone正则表达式