主動辭職浪了兩個月,最終在爸媽每天催着下,隨便找了家公司上班去了,新公司裏面用到了spring security框架,以前用的shiro還沒用上,就換了這個。。。總之先記錄一下,之後說不定用的上web
首先添加maven依賴:(裏面有好多依賴,應該是包括配置庫,核心庫,標籤庫,認證庫,我沒看懂,暫時先記錄一下,之後進行修改)正則表達式
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>${spring.security.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>${spring.security.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-taglibs</artifactId> <version>${spring.security.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>${spring.security.version}</version> </dependency> <dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> <version>2.1.0.RELEASE</version> </dependency>
而後添加配置文件:application-security.xmlspring
1.引入命名空間(其中security是自定義名稱)數據庫
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> </beans>
2.定義HTTP元素app
<security:http auto-config="true"> <security:intercept-url pattern="/**" access="ROLE_USER"/> </security:http>
其中auto-config=「true」會默認生成一個登錄頁面,如上定義中,intercept-url 定義了一個權限控制的規則。pattern 屬性表示咱們將對哪些 url 進行權限控制,其也能夠是一個正則表達式,如上的寫法表示咱們將對全部的 URL 進行權限控制;access 屬性表示在請求對應的 URL 時須要什麼權限,默認配置時它應該是一個以逗號分隔的角色列表,請求的用戶只需擁有其中的一個角色就能成功訪問對應的 URL。這裏的 「ROLE_USER」 表示請求的用戶應當具備 ROLEUSER 角色。「ROLE」 前綴是一個提示 Spring 使用基於角色的檢查的標記。框架
3.定義AuthenticationManage用於認證maven
<security:authentication-manager> <security:authentication-provider> <security:user-service> <security:user name="user" password="user" authorities="ROLE_USER"/> <security:user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN"/> </security:user-service> </security:authentication-provider> </security:authentication-manager>
authentication-manager 元素指定了一個 AuthenticationManager,其須要一個 AuthenticationProvider(對應 authentication-provider 元素)來進行真正的認證,默認狀況下 authentication-provider 對應一個 DaoAuthenticationProvider,其須要 UserDetailsService(對應 user-service 元素)來獲取用戶信息 UserDetails(對應 user 元素)。這裏咱們只是簡單的使用 user 元素來定義用戶,而實際應用中這些信息一般都是須要從數據庫等地方獲取的,這個將放到後續再講。咱們能夠看到經過 user 元素咱們能夠指定 user 對應的用戶名、密碼和擁有的權限。user-service 還支持經過 properties 文件來指定用戶信息,如:ide
<security:user-service properties="/WEB-INF/config/users.properties"/>
其中屬性文件應遵循以下格式:url
username=password,grantedAuthority[,grantedAuthority][,enabled|disabled]
因此,對應上面的配置文件,咱們的 users.properties 文件的內容應該以下所示:code
#username=password,grantedAuthority[,grantedAuthority][,enabled|disabled] user=user,ROLE_USER admin=admin,ROLE_USER,ROLE_ADMIN
至此,咱們的 Spring Security 配置文件的配置就完成了。完整配置文件將以下所示。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> <security:http auto-config="true"> <security:intercept-url pattern="/**" access="ROLE_USER"/> </security:http> <security:authentication-manager> <security:authentication-provider> <security:user-service> <security:user name="user" password="user" authorities="ROLE_USER"/> <security:user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN"/> </security:user-service> </security:authentication-provider> </security:authentication-manager> </beans>
最後配置文件到spring的配置文件裏面或者web.xml裏面就能夠了
先這樣子吧,之後瞭解了繼續修改