国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

基于Spring框架的Shiro配置方法

2019-11-26 15:23:01
字體:
來源:轉載
供稿:網友

一、在web.xml中添加shiro過濾器

<!-- 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; }}

參考資料:讓Apache Shiro保護你的應用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平原县| 韩城市| 迁安市| 广河县| 长泰县| 澳门| 扶绥县| 肇源县| 蒙城县| 湘潭县| 上虞市| 尉犁县| 香格里拉县| 南通市| 龙门县| 湘西| 安平县| 山西省| 长葛市| 湄潭县| 怀仁县| 秦皇岛市| 临江市| 黑龙江省| 沂南县| 平江县| 香河县| 佛坪县| 寿宁县| 闸北区| 揭东县| 沽源县| 额尔古纳市| 潮安县| 中方县| 定日县| 鄂托克前旗| 建湖县| 遵义市| 望都县| 阿拉善左旗|