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 ,須要提供自定義模式的處理配置,以下代碼

相關文章
相關標籤/搜索