博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot 2.0之安全
阅读量:7266 次
发布时间:2019-06-29

本文共 3061 字,大约阅读时间需要 10 分钟。

hot3.png

简介

如果在classpath上设置了spring 安全,默认的话其web 也是安全的。springboot依赖于spring 的安全声明策略决定是使用httpBasic 或者 formLogin,添加web应用的安全等级方法,可以使用@EnableGlobalMethodSecurity 添加你想要的配置。

默认的认证管理是拥有一个单独的用户。如下所示:

Using generated security password: 78fa095d-3f4c-48b1-ad50-e24c31d5cf35

可以通过提供spring.security.user.name 与spring.security.user.password改变其用户和密码。

 

默认的安全配置是通过SecurityAutoConfiguration 实现(同时也包括非web应用程序)。关闭默认的安全配置,可以通过添加一个WebSecurityConfigurerAdapter 类型的bean实现。

关闭认证管理配置,可以通过添加 UserDetailsServiceAuthenticationProvider 与 AuthenticationManager的类型。

在一个web应用程序中,你默认得到的一个基础特性是:

 

  • 一个UserDetailsService bean(在内存中存储以及一个产生密码的word)
  • 基于表格的登录或者是基于整个http的安全认证要求(包括执行者的点)。

可以通过添加一个自定义的WebSecurityConfigurerAdapter去覆盖其规则。spring boot对actuator endpoints于静态资源提供了便利的方法去处理。EndpointRequest 能够创建一个基于management.endpoints.web.base-path 的属性。StaticResourceRequest 能够给创建一个指定静态资源位置的 RequestMatcher 。

 

 

 

OAuth2

其是一种被spring广泛支持的授权框架。

客户端

如果你有spring-security-oauth2-client ,你就可以充分利用其自动配置简化安装oauth2的客户端。这充分利用其 OAuth2ClientProperties的配置属性,你可以通过使用 spring.security.oauth2.client 前缀注册客户端:代码如下

spring.security.oauth2.client.registration.my-client-1.client-id=abcdspring.security.oauth2.client.registration.my-client-1.client-secret=passwordspring.security.oauth2.client.registration.my-client-1.client-name=Client for user scopespring.security.oauth2.client.registration.my-client-1.provider=my-oauth-providerspring.security.oauth2.client.registration.my-client-1.scope=userspring.security.oauth2.client.registration.my-client-1.redirect-uri-template=http://my-redirect-uri.comspring.security.oauth2.client.registration.my-client-1.client-authentication-method=basicspring.security.oauth2.client.registration.my-client-1.authorization-grant-type=authorization_codespring.security.oauth2.client.registration.my-client-2.client-id=abcdspring.security.oauth2.client.registration.my-client-2.client-secret=passwordspring.security.oauth2.client.registration.my-client-2.client-name=Client for email scopespring.security.oauth2.client.registration.my-client-2.provider=my-oauth-providerspring.security.oauth2.client.registration.my-client-2.scope=emailspring.security.oauth2.client.registration.my-client-2.redirect-uri-template=http://my-redirect-uri.comspring.security.oauth2.client.registration.my-client-2.client-authentication-method=basicspring.security.oauth2.client.registration.my-client-2.authorization-grant-type=authorization_codespring.security.oauth2.client.provider.my-oauth-provider.authorization-uri=http://my-auth-server/oauth/authorizespring.security.oauth2.client.provider.my-oauth-provider.token-uri=http://my-auth-server/oauth/tokenspring.security.oauth2.client.provider.my-oauth-provider.user-info-uri=http://my-auth-server/userinfospring.security.oauth2.client.provider.my-oauth-provider.jwk-set-uri=http://my-auth-server/token_keysspring.security.oauth2.client.provider.my-oauth-provider.user-name-attribute=name

默认情况下,spring security 的OAuth2LoginAuthenticationFilter 是仅仅处理与 /login/oauth2/code/*.匹配的URI。如果想要自定义话一个不同的redirect-uri-template ,需要提供自定义模式的处理配置,如下代码

转载于:https://my.oschina.net/u/3611008/blog/1602880

你可能感兴趣的文章
Css常用操作——————导航栏
查看>>
ZooKeeper安装配置
查看>>
PyCharm安装及使用
查看>>
前端学习之ajax
查看>>
linux服务之FTP
查看>>
Java NIO与IO的区别和比较
查看>>
MySQL的分页技术总结
查看>>
Crontab 用法
查看>>
PendingIntent
查看>>
自动登录多个IDC机房(expect+shell)
查看>>
MongoDB 主从集群配置
查看>>
托管代码和非托管代码的区别
查看>>
设计模式--组合模式
查看>>
rsync文件同步应用--服务器端的配置
查看>>
开灯关灯问题
查看>>
Discuz非创始人管理员代码执行
查看>>
利用Hibernate Validator实现对Bean的参数验证
查看>>
CPython 和IronPython的基准测试
查看>>
输入的命令集锦
查看>>
企业集群平台架构实现与应用实战(HAproxy+keepalived篇)
查看>>