生活随笔
收集整理的這篇文章主要介紹了
基于Spring框架的Shiro配置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://kdboy.iteye.com/blog/1103794
一、在web.xml中添加shiro過(guò)濾器?
Xml代碼??
?? <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定義? Xml代碼??
?? <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定義? Xml代碼??
<bean?id="securityManager"?class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">?? ????<property?name="realm"?ref="myRealm"?/>?? </bean>?? 3、添加realm定義? Xml代碼??
<bean?id="?myRealm"?class="com...MyRealm"?/>?? 三、實(shí)現(xiàn)MyRealm:繼承AuthorizingRealm,并重寫認(rèn)證授權(quán)方法? Java代碼??
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;?? ????}?? ?? } ?
轉(zhuǎn)載于:https://www.cnblogs.com/bluejoe/p/5115962.html
總結(jié)
以上是生活随笔為你收集整理的基于Spring框架的Shiro配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。