java url 授权,Spring MVC框架 - 基本认证之URL 授权认证
[导读]为控制器添加注解是非常简单的,但这往往并不是最可行的方案。有时候,我们会想要完全控制授权功能。
为控制器添加注解是非常简单的,但这往往并不是最可行的方案。有时候,我们会想要完全控制授权功能。
移除@Secured 注解,我们将会采用一种更好的方案。
通过修改SecurityConfiguration 类,我们看一下Spring Security 允许实现什么功能:@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
public void configureAuth(AuthenticationManagerBuilder auth)
throws Exception {
auth.inMemoryAuthentication().withUser("user").password("user")
.roles("USER").and().withUser("admin").password("admin")
.roles("USER", "ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().and().csrf().disable().authorizeRequests()
.antMatchers("/login", "/logout").permitAll()
.antMatchers(HttpMethod.GET, "/api/**").hasRole("USER")
.antMatchers(HttpMethod.POST, "/api/**").hasRole("ADMIN")
.antMatchers(HttpMethod.PUT, "/api/**").hasRole("ADMIN")
.antMatchers(HttpMethod.DELETE, "/api/**").hasRole("ADMIN")
.anyRequest().authenticated();
}
}
在前面的示例代码中,我们使用Spring Security 流畅的API,配置了应用程序的安全策略。
这个 API 通过调用相关安全功能的方法,能够在全局上配置Spring Security,这些方法可以通过and()连接起来。
我们刚刚定义的是一个基本认证,没有CSRF 保护功能。任何用户都允许发送针对“/login”和“/logout”的请求。对API 的GET 请求只允许具有USER 角色的用户访问,而对API 的POST、PUT 和DELETE 请求则只允许具有ADMIN 角色的用户访问。最后,对其他内容的访问则要求用户进行过认证,不管角色是什么,都可以进行访问。
CSRF 所代表的含义是跨站请求伪造(Cross Site Request Forgery),指的是一种攻击形式,恶意的Web 站点将会在他们的网站上展示一个表单,但是会将表单的数据POST 提交到我们的站点上。如果我们站点的用户没有退出的话,那么POST 请求能够获取用户的cookie,这样的话,就会被认为是认证过的用户。
针对 CSRF 的防护会生成短期存活的token,它会随着表单数据一起进行提交。我们会在下面的章节看到如何启用该功能,现在我们先将其禁用。参考http://docs.spring.io/spring-security/site/docs/current/ reference/htmlsingle/#csrf 来了解更多细节。
tips:如果想了解针对API 请求进行认证的更多知识,可以参考:http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#authorize-requests。
java url 授权,Spring MVC框架 - 基本认证之URL 授权认证相关推荐
- 从零开始学java 框架_从零开始学 Java - 搭建 Spring MVC 框架
如果创建一个 Spring 项目 Spring MVC 框架在 Java 的 Web 项目中应该是无人不知的吧,你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会,如果你不会的话 ...
- 【Java学习路线之JavaWeb】Spring MVC框架入门教程
文章目录 读者 阅读条件 MVC设计模式简介 JSP+JavaBean Servlet+JSP+JavaBean MVC优缺点 优点 缺点 Spring MVC是什么 Spring MVC优点 第一个 ...
- Java Spring MVC框架 VII
Java Spring MVC框架 VII Spring MVC小结 1.小结 ● 关于Spring MVC框架,你应该(1/5): – 理解Spring MVC框架的作用 – 接收请求,响应结果,处 ...
- Java Spring MVC框架 VIII 之 Spring MVC拦截器
Java Spring MVC框架 VIII 之 Spring MVC拦截器 Spring MVC拦截器 1.拦截器简介 拦截器是SpringMvc框架提供的功能 它可以在控制器方法运行之前或运行之后 ...
- Java中级篇——Spring MVC 是什么(附加响应状态代码列举)
1.关于springMVC 基于Spring框架,主要解决后端服务器接受客户端服务器接受客户提交的请求,并给予响应相关的问题.的框架 目录 1.关于springMVC 基于Spring框架,主要解决后 ...
- 搭建基于spring MVC框架 + RESTful架构风格技术总结
2019独角兽企业重金招聘Python工程师标准>>> 实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的 ...
- java地址映射关系,Spring MVC——基础(简介,使用,地址映射)
"大佬们"嘴中的SSH,SSM框架,我这种小白终于解除到第二个S了,关于Spring MVC框架,根据最近的学习发现,还是有很多不足和需要加强巩固的地方,所以,通过总结博客的方式将 ...
- 从 0 开始手写一个 Spring MVC 框架,向高手进阶
转载自 从 0 开始手写一个 Spring MVC 框架,向高手进阶 Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面.如 ...
- springmvc流程_基于Spring MVC框架的Http流程分析
一.问题提出 我们可以方便的利用Spring MVC进行业务开发,请求的大部分工作都被框架和容器封装,使得我们只需要做很少量的工作.但是整个http请求流程是怎么样的?Spring MVC框架在其中起 ...
最新文章
- java框架篇---spring IOC依赖注入
- 推荐: 五分钟搞懂Xen、KVM、Qemu间的关系和区别[转载]
- 「C++」C++ Primer Plus 笔记:第十七章 输入、输出和文件
- 苹果的程序员三大定律
- typeof 和instanceof
- vue rule鼠标移走校验_Vue-cli+Element-ui实现后台管理系统(二)实现后台登录功能...
- 读取pcap获得端口_渗透技巧——获得Exchange GlobalAddressList的方法
- SqlBulkCopy转载
- 跨国际日期分界线的解决方法
- Jenkins+Git+Maven+Nexus+Tomcat
- python flask 路由_python框架flask入门之路由及简单实现方法
- API之实用工具Postman 使用方法
- t450加固态硬盘教程_ThinkPad T450 开箱安装内存SSD升级Windows10过程小记-5X兴趣社区...
- android 音视频录制
- 佳能2900打印机与win10不兼容_佳能LBP2900 64位驱动下载|佳能LBP2900打印机64位驱动支持Win10/Win7 下载_当游网...
- VBA中启动其它程序
- ​如何成为一个成功的自由程序员?
- python向excel写数据_Python 往Excel写数据
- 侯捷C++八部曲笔记(四、C++2.0新特性)
- DAY SIX -- ospf的不规则区域问题和链路状态通告LSA
热门文章
- Spring For All 顶级Spring综合社区服务平台
- PostgreSQL学习手册(二) 模式(Schema)
- [转载]vs2008下安装boost
- 导致View树遍历的时机
- 大数据与Hadoop
- 深入理解InnoDB(6)—独立表空间
- leetcode1509. 三次操作后最大值与最小值的最小差
- 数据库sql课程设计_SQL和数据库-初学者完整课程
- pmp 成本估算准确高_如何更准确地估算JavaScript中文章的阅读时间
- mysql 数据库 安全_如何确保您MySQL数据库安全