<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的實現(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 閱讀(4982) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品和日本精品| 午夜影视日本亚洲欧洲精品一区| 一级毛片aaaaaa视频免费看| 久久被窝电影亚洲爽爽爽| aⅴ在线免费观看| 国产精品亚洲五月天高清| 亚洲精品无码专区在线在线播放| 在线观看H网址免费入口| 麻豆安全免费网址入口| 久久精品a亚洲国产v高清不卡| 无码日韩精品一区二区免费| 亚洲日韩在线观看免费视频| 亚洲人成免费电影| 亚洲精品国偷自产在线| 成人毛片免费观看视频| 日本黄色动图免费在线观看| 天天综合亚洲色在线精品| 亚洲尹人九九大色香蕉网站| 亚洲国产婷婷香蕉久久久久久| 亚洲免费在线视频观看| 国产免费牲交视频免费播放| 亚洲熟女精品中文字幕| 久久青草亚洲AV无码麻豆| 免费a级毛片无码a∨性按摩| 2020久久精品国产免费| 99久久成人国产精品免费| 亚洲风情亚Aⅴ在线发布| 99久久精品国产亚洲| 久久久久噜噜噜亚洲熟女综合| 毛片网站免费在线观看| 无码中文字幕av免费放dvd| 一级日本高清视频免费观看 | 亚洲精品国产啊女成拍色拍| 亚洲人成电影网站国产精品 | 亚洲国产国产综合一区首页| 国产精品视频免费一区二区三区 | 好爽…又高潮了免费毛片| 少妇无码一区二区三区免费| 好男人资源在线WWW免费| 久久精品国产亚洲AV| 亚洲人AV在线无码影院观看|