A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【郑州校区】传智健康项目讲义第九章 三

第三步:修改health_backend工程中的springmvc.xml文件,修改dubbo批量扫描的包路径
[AppleScript] 纯文本查看 复制代码
<!‐‐批量扫描‐‐>
<dubbo:annotation package="com.itheima" />

注意:此处原来扫描的包为com.itheima.controller,现在改为com.itheima包的目的是需要将我们上面定义的SpringSecurityUserService也扫描到,因为在SpringSecurityUserServiceloadUserByUsername方法中需要通过dubbo远程调用名称为UserService的服务。
第四步:在health_backend工程中提供spring-security.xml配置文件

[AppleScript] 纯文本查看 复制代码
<?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"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
[url]http://www.springframework.org/schema/beans/spring[/url]‐beans.xsd
[url]http://www.springframework.org/schema/mvc[/url]
[url]http://www.springframework.org/schema/mvc/spring[/url]‐
mvc.xsd
[url]http://code.alibabatech.com/schema/dubbo[/url]
[url]http://code.alibabatech.com/schema/dubbo/dubbo.xsd[/url]
[url]http://www.springframework.org/schema/context[/url]
[url]http://www.springframework.org/schema/context/spring[/url]‐context.xsd
[url]http://www.springframework.org/schema/security[/url]
[url]http://www.springframework.org/schema/security/spring[/url]‐security.xsd">
<!‐‐
http:用于定义相关权限控制
指定哪些资源不需要进行权限校验,可以使用通配符
‐‐>
<security:http security="none" pattern="/js/**" />
<security:http security="none" pattern="/css/**" />
<security:http security="none" pattern="/img/**" />
<security:http security="none" pattern="/plugins/**" />
<!‐‐
http:用于定义相关权限控制
auto‐config:是否自动配置
设置为true时框架会提供默认的一些配置,例如提供默认的登
录页面、登出处理等
设置为false时需要显示提供登录表单配置,否则会报错
use‐expressions:用于指定intercept‐url中的access属性是否使用表达式
‐‐><security:http auto‐config="true" use‐expressions="true">
<security:headers>
<!‐‐设置在页面可以通过iframe访问受保护的页面,默认为不允许访问‐‐>
<security:frame‐options policy="SAMEORIGIN"></security:frame‐
options>
</security:headers>
<!‐‐
intercept‐url:定义一个拦截规则
pattern:对哪些url进行权限控制
access:在请求对应的URL时需要什么权限,默认配置时它应该是一个以逗号
分隔的角色列表,
请求的用户只需拥有其中的一个角色就能成功访问对应的URL
isAuthenticated():已经经过认证(不是匿名用户)
‐‐>
<security:intercept‐url pattern="/pages/**"
access="isAuthenticated()" />
<!‐‐form‐login:定义表单登录信息‐‐>
<security:form‐login login‐page="/login.html"
username‐parameter="username"
password‐parameter="password"
login‐processing‐url="/login.do"
default‐target‐url="/pages/main.html"
always‐use‐default‐target="true"
authentication‐failure‐url="/login.html"
/>
<!‐‐
csrf:对应CsrfFilter过滤器
disabled:是否启用CsrfFilter过滤器,如果使用自定义登录页面需要关闭
此项,
否则登录操作会被禁用(403)
‐‐>
<security:csrf disabled="true"></security:csrf>
</security:http>
<!‐‐配置密码加密对象‐‐>
<bean id="passwordEncoder"
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"
/><!‐‐认证管理器,用于处理认证操作‐‐>
<security:authentication‐manager>
<!‐‐认证提供者,执行具体的认证逻辑‐‐>
<security:authentication‐provider user‐service‐
ref="springSecurityUserService">
<!‐‐指定密码加密策略‐‐>
<security:password‐encoder ref="passwordEncoder" />
</security:authentication‐provider>
</security:authentication‐manager>
<!‐‐开启注解方式权限控制‐‐>
<security:global‐method‐security pre‐post‐annotations="enabled" />
</beans> 

第五步:在springmvc.xml文件中引入spring-security.xml文件
[AppleScript] 纯文本查看 复制代码
 <import resource="spring‐security.xml"></import>



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马