javascript
使用Spring Boot 2.0的Spring Security:保护端点
到目前為止,在以前的文章中,我們已經使用默認的spring安全配置對端點和控制器進行了安全保護。
當Spring Security在類路徑上時,默認情況下自動配置會保護所有端點。
當涉及到復雜的應用程序時,我們需要每個端點使用不同的安全策略。 我們需要配置哪些端點應受到保護,哪些類型的用戶應能夠訪問該端點以及應公開的端點。
一個很好的例子是端點,它將向用戶顯示歡迎消息。
package com.gkatzioura.security.securityendpoints.controller;import java.util.ArrayList; import java.util.List;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;@RestController public class IndexController {@GetMapping(path = "welcome")public String getMessage() {return "Welcome to the application";} }關于您的應用程序已經受到保護的事實,您需要提供對該端點的公共訪問。
為了做到這一點,spring為我們提供了HttpSecurity類。 通過擴展WebSecurityConfigurerAdapter我們可以配置應該保護的端點和應該是公共的端點。
因此,讓我們創建WebSecurityConfigurerAdapter配置。
package com.gkatzioura.security.securityendpoints.config;import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/welcome").permitAll().anyRequest().authenticated().and().formLogin().permitAll().and().logout().permitAll();} }因此,讓我們通過調用authorizeRequests函數將其分為幾個部分。 我們有一個http配置器,可以添加我們想要公開或保護的端點。
通過調用antMatchers函數,我們可以傳遞一組螞蟻模式。 應用的功能將為在antmatchers中指定的每個端點創建一個規則。
下一個功能是anyRequest 。 驗證后的規則將應用于收到的任何請求。
最后但并非最不重要的一點是spring帶有默認的登錄表單和默認的注銷端點。 為了使登錄和注銷變得可行,我們必須允許訪問這些端點。
因此,最終結果將是可以公開訪問歡迎端點,用于登錄和注銷端點的預配置表單。
翻譯自: https://www.javacodegeeks.com/2018/07/spring-security-boot-2-securing-endpoints.html
總結
以上是生活随笔為你收集整理的使用Spring Boot 2.0的Spring Security:保护端点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 京东手机节(京东手机节有什么优惠)
- 下一篇: Spring依赖注入–字段vs设置器vs