<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    athrunwang

    紀(jì)元
    數(shù)據(jù)加載中……
    apache shiro與spring的環(huán)境搭建
    [代碼] web.xml
    <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                 <!--spring 的配置文件-->
                 classpath:/applicationContext-hibernate.xml
            </param-value>
       </context-param>
     
       <!-- shiro -->
       <filter>
            <filter-name>shiroFilter</filter-name>
            <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
            <init-param>
                 <param-name>targetFilterLifecycle</param-name>
                 <param-value>true</param-value>
            </init-param>
       </filter>
     
       <filter-mapping>
            <filter-name>shiroFilter</filter-name>
            <url-pattern>/*</url-pattern>
       </filter-mapping>
     
       <!-- Listeners -->
       <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
       </listener>
    [代碼] applicationContext-hibernate.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="     xmlns:xsi="     xsi:schemaLocation="
          
    http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
           http://www.springframework.org/schema/aop
          

         <!-- SessionFactory, DataSource, etc. omitted -->

         <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
              destroy-method="close">
              <property name="driverClassName" value="${jdbc.driverClassName}" />
              <property name="url" value="${jdbc.url}" />
              <property name="username" value="${jdbc.username}" />
              <property name="password" value="${jdbc.password}" />
         </bean>

         <bean id="sessionFactory"
              class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
              <property name="dataSource" ref="dataSource" />
              <property name="packagesToScan">
                   <list>
                        <value>org.projects.graduates.domain</value>
                   </list>
              </property>
              <property name="hibernateProperties">
                   <value>hibernate.dialect=${hibernate.dialect}</value>
              </property>
         </bean>

         <bean id="txManager"
              class="org.springframework.orm.hibernate3.HibernateTransactionManager">
              <property name="sessionFactory" ref="sessionFactory" />
         </bean>

         <tx:advice id="txAdvice" transaction-manager="txManager">
              <tx:attributes>
                   <tx:method name="get*" read-only="true" />
                   <tx:method name="find*" read-only="true" />
                   <tx:method name="*" propagation="REQUIRED" />
              </tx:attributes>
         </tx:advice>

         <aop:config>
              <aop:pointcut id="appOperation"
                   expression="execution(* org.projects.graduates.app.GradApplication.*(..))" />
              <aop:advisor advice-ref="txAdvice" pointcut-ref="appOperation" />
         </aop:config>

         <!-- shiro -->
         <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
              <property name="securityManager" ref="securityManager" />
              <property name="loginUrl" value="/login.action" />
              <property name="successUrl" value="/main.action" />
              <property name="unauthorizedUrl" value="/login.action" />
              <property name="filterChainDefinitions">
                   <value>
                        /index.action = anon
                        /login.action = anon
                        /main.action = authc, roles[admin]
                        /course/** = authc, roles[admin]
                   </value>
              </property>
         </bean>

       
         <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
         <!--設(shè)置自定義realm-->
              <property name="realm" ref="myRealm" />
         </bean>
       
         <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
       
         <!--myRealm 繼承自AuthorizingRealm-->
         <bean id="myRealm" class="org.projects.graduates.shiro.GradRealm" ></bean>

         <bean
              class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
              <property name="staticMethod"
                   value="org.apache.shiro.SecurityUtils.setSecurityManager" />
              <property name="arguments" ref="securityManager" />
         </bean>

    </beans>

    [代碼] org.projects.graduates.shiro.GradRealm

    public class GradRealm extends AuthorizingRealm {

         private SecurityApplication securityApplication = new SecurityApplicationImpl();

         public GradRealm() {
              super();
              //設(shè)置認(rèn)證token的實(shí)現(xiàn)類
              setAuthenticationTokenClass(UsernamePasswordToken.class);
              //設(shè)置加密算法
              setCredentialsMatcher(new HashedCredentialsMatcher(Sha1Hash.ALGORITHM_NAME));
            
         }
         //授權(quán)
         protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
              String loginName = (String) principalCollection.fromRealm(getName()).iterator().next();
              User user = securityApplication.findby(loginName);
              if (null == user) {
                   return null;
              } else {
                   SimpleAuthorizationInfo result = new SimpleAuthorizationInfo();
                 
                   result.addRoles(UserRoles.findRoleNamesOf(user));
                   for (Role role : UserRoles.findRolesOf(user)) {
                        result.addStringPermissions(role.getPermissions());
                   }
                 
                   return result;

              }
         }

         //認(rèn)證
         protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
              UsernamePasswordToken upToken = (UsernamePasswordToken) token;
              User user = securityApplication.findby(upToken.getUsername());
              if (user != null) {
                   return new SimpleAuthenticationInfo(user.getUsername(), user.getPassword(), getName());
              }
              return null;
         }
    }


    posted on 2012-03-06 10:07 AthrunWang 閱讀(4986) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲av永久无码制服河南实里| 思思re热免费精品视频66| 又爽又高潮的BB视频免费看| 亚洲一区二区三区高清在线观看| 成人福利免费视频| 亚洲最大成人网色香蕉| 野花高清在线观看免费3中文| 亚洲人成网网址在线看| 国产va免费精品观看精品| 亚洲а∨天堂久久精品9966| 四虎影视大全免费入口| 亚洲av无码一区二区三区四区| 日韩在线视频免费看| 色天使亚洲综合一区二区| 亚洲国产综合人成综合网站| gogo免费在线观看| 亚洲电影中文字幕| 亚洲成AV人片在线播放无码| 免费黄色电影在线观看| 免费国产在线观看老王影院| 无套内射无矿码免费看黄| 亚洲色成人中文字幕网站| 国产成人精品无码免费看 | 美女被爆羞羞网站在免费观看 | 成年免费大片黄在线观看岛国| 亚洲一卡2卡3卡4卡国产网站 | 无码亚洲成a人在线观看| 亚洲国产精品无码久久九九| 日批视频网址免费观看| 亚洲国产精品免费在线观看| 日韩电影免费在线| 免费无码作爱视频| 456亚洲人成影院在线观| 亚洲欧洲自拍拍偷精品 美利坚 | 亚洲日韩一区精品射精| 久久久久久久亚洲精品| 亚洲日本在线免费观看| 亚洲av永久中文无码精品综合| 国产亚洲成人久久| 中文字幕影片免费在线观看| 国产精品午夜免费观看网站|