spring boot 2.0之安全

简介

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

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

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

能够经过提供spring.security.user.name 与spring.security.user.password改变其用户和密码。spring

 

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

关闭认证管理配置,能够经过添加 UserDetailsServiceAuthenticationProvider 与 AuthenticationManager的类型。springboot

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

 

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

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

我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,立刻就要抢光了。阿里云

 

 

 

OAuth2

其是一种被spring普遍支持的受权框架。url

客户端

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

spring.security.oauth2.client.registration.my-client-1.client-id=abcd
spring.security.oauth2.client.registration.my-client-1.client-secret=password
spring.security.oauth2.client.registration.my-client-1.client-name=Client for user scope
spring.security.oauth2.client.registration.my-client-1.provider=my-oauth-provider
spring.security.oauth2.client.registration.my-client-1.scope=user
spring.security.oauth2.client.registration.my-client-1.redirect-uri-template=http://my-redirect-uri.com
spring.security.oauth2.client.registration.my-client-1.client-authentication-method=basic
spring.security.oauth2.client.registration.my-client-1.authorization-grant-type=authorization_code

spring.security.oauth2.client.registration.my-client-2.client-id=abcd
spring.security.oauth2.client.registration.my-client-2.client-secret=password
spring.security.oauth2.client.registration.my-client-2.client-name=Client for email scope
spring.security.oauth2.client.registration.my-client-2.provider=my-oauth-provider
spring.security.oauth2.client.registration.my-client-2.scope=email
spring.security.oauth2.client.registration.my-client-2.redirect-uri-template=http://my-redirect-uri.com
spring.security.oauth2.client.registration.my-client-2.client-authentication-method=basic
spring.security.oauth2.client.registration.my-client-2.authorization-grant-type=authorization_code

spring.security.oauth2.client.provider.my-oauth-provider.authorization-uri=http://my-auth-server/oauth/authorize
spring.security.oauth2.client.provider.my-oauth-provider.token-uri=http://my-auth-server/oauth/token
spring.security.oauth2.client.provider.my-oauth-provider.user-info-uri=http://my-auth-server/userinfo
spring.security.oauth2.client.provider.my-oauth-provider.jwk-set-uri=http://my-auth-server/token_keys
spring.security.oauth2.client.provider.my-oauth-provider.user-name-attribute=name

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

相关文章
相关标签/搜索