springShiro.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--扫描-->
<context:component-scan base-package="com"/>


<!--开启shiro的注解-->
<bean id="advisorAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
depends-on="lifecycleBeanPostProcessor">
<property name="proxyTargetClass" value="true"/>
</bean>
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />

<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager"/>
</bean>


<bean id="customRealm" class="com.lbnl.realm.UserRealm"></bean> <!--注入自定义的Realm-->

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="customRealm"></property>
</bean>

<!--配置ShiroFilter-->
<bean id="shiorFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!--定义认证逻辑和授权逻辑-->
<property name="securityManager" ref="securityManager"></property>

<!-- 认证页面:未认证用户请求需要认证的url时就会自动跳转到此页面url-->
<!-- 它不是必须的属性,不输入地址的话会自动寻找项目web项目的根目录下的"/login.jsp"-->
<property name="loginUrl" value="/user/login"></property>


<!-- 没有授权的用户请求需要授权的url时就会被跳转到这个地址 --> <!-- 但是我发现这句不起作用 -->
<!--未授权的状态访问需要授权的地址 就会被重定向这个value路径-->
<property name="unauthorizedUrl" value="/user/Permission" />

<!-- 认证成功页面url-->
<!-- 理想状况下,它是认证成功后默认跳转路径,不设置则跳转至"/"-->
<!-- 理想状况下,如果点击一个需认证的url,经认证后则会自动跳转到之前这个需要认证的url,而不跳到successUrl-->
<!-- 但上面所说的仅是理想状况下 successUrl的功效。实验时往往差强人意-->

<!--一旦登录成功就跳到这个路径-->
<property name="successUrl" value=""/>

<!--
<property name="filters">
<map>
<entry key="logout" value-ref="logoutFilter" />
</map>
</property>
-->

<!-- URL的过滤规则指定-->
<!-- 用得最多的是 anon(匿名可访问)authc(认证后可访问)logout(注销时用)(会清除所有sesseion和一些cookie)(会默认跳往根目录) -->
<property name="filterChainDefinitions" >
<value>
/user/login = anon
/back/book/ceshi1 = authc,roles[admin]
/back/** = authc




</value>
</property>

</bean>

<!--自定义退出时用的过滤器--><!--这是程序员自行写的一个类,其中具体用名为redirectUrlproperty指定了退出后要跳转到的url-->
<!--
<bean id="logoutFilter" class="com.test.filter.SystemLogoutFilter">
<property name="redirectUrl" value="/login"/>
</bean> -->
</beans>
posted @ 2022-08-15 13:39  java小寇  阅读(46)  评论(0)    收藏  举报