您好,登錄后才能下訂單哦!
小編給大家分享一下Spring Security基本配置的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Spring Security 是一個功能強大且可高度自定義的身份驗證和訪問控制框架。 它是保護基于Spring的應用程序的事實上的標準。
Spring Security 是一個專注于為Java應用程序提供身份驗證和授權的框架。 與所有Spring項目一樣,Spring Security的真正強大之處在于它可以輕松擴展以滿足自定義要求
先建立一個maven多模塊工程,如下:
spring-security:父模塊
spring-security-browser:處理瀏覽器相關的授權認證,最終作為demo的一個jar依賴
spring-security-core:一些授權認證的公共方法和類,并將公共依賴放在這里
spring-security-demo:授權認證demo服務
spring-security-core
pom依賴:
<!-- 工具類包 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.1</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <!-- thymeleaf-視圖解析 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
spring-security-browser
pom依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.xwj</groupId> <artifactId>spring-security-core</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
Security配置:
@Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.formLogin() // 表單登錄。跳轉到security默認的登錄表單頁 // http.httpBasic() //basic登錄 .and() .authorizeRequests() // 對請求授權 .antMatchers("/noAuth").permitAll() //允許所有人訪問/noAuth .anyRequest() // 任何請求 .authenticated()// 需要身份認證 ; } }
spring-security-demo
pom依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.xwj</groupId> <artifactId>spring-security-browser</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
Controller中:
@RestController @RequestMapping public class IndexController { /** * 不需要認證的請求 */ @GetMapping("/noAuth") public String noAuth() { return "noAuth"; } /** * 需要認證的請求 */ @GetMapping("/user") public String user() { return "user"; } }
啟動服務。在日志中,可以看到如下信息:
Using default security password: 90d9e73a-490c-484b-b7c5-5cd75c634e2f
這是security的默認密碼,在后面登錄時會用到
該服務端口為18081,在瀏覽器訪問 http://localhost:18081/noAuth,該請求是不需要認證的,所以直接進入到我們的服務,如下:
再訪問 http://localhost:18081/user,該請求是需要認證的,會先跳到security默認的登錄頁(也可以自定義登錄頁),如下:
用戶名隨便輸入,密碼為日志中打印的密碼:90d9e73a-490c-484b-b7c5-5cd75c634e2f
點擊login按鈕,登錄成功,返回一個user。當重新訪問這個請求時,由于已經認證過了,所以現在可以直接訪問了
以上是“Spring Security基本配置的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。