<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、UserDetails UserDetails 就是封裝了用戶信息的對象,里面包含了七個方法; ``` public interface UserDetails extends Serializable { // 封裝了權限信息 Collection<? extends GrantedAuthority> getAuthorities(); // 密碼信息 String getPassword(); // 登錄用戶名 String getUsername(); // 帳戶是否過期 boolean isAccountNonExpired(); // 帳戶是否被凍結 boolean isAccountNonLocked(); // 帳戶密碼是否過期,一般有的密碼要求性高的系統會使用到,比較每隔一段時間就要求用戶重置密碼 boolean isCredentialsNonExpired(); // 帳號是否可用 boolean isEnabled(); } ``` ## 二、UserDetailsService 1、需要自定義 UserDetailsService ,將用戶信息和權限注入進來; 我們需要重寫 loadUserByUsername 方法,參數是用戶輸入的用戶名。返回值是UserDetails; 2、UserDetails就是SpringSecurity的認證實體的統一接口,它這是一個Java接口,一般使用它的子類org.springframework.security.core.userdetails.User,它有三個參數,分別是用戶名、密碼和權限集,當然,也可以自己定義UserDetails ,如下; ``` @Entity @Table(name = "sys_staff") public class SysStaff extends BaseEntity implements UserDetails {......} ``` ~~~java public interface PasswordEncoder { // 對密碼進行加密 String encode(CharSequence var1); // 對密碼進行判斷匹配 boolean matches(CharSequence var1, String var2); } ~~~ ## 三、WebSecurityConfig 該類是 Spring Security 的最核心的配置類,該類的三個注解分別是標識該類是配置類、開啟 Security 服務、開啟全局 Securtiy 注解; 1、將我們自定義的 `userDetailsService` 注入進來,在 `configure()` 方法中使用 `auth.userDetailsService()` 方法替換掉默認的 userDetailsService; 2、配置登錄的頁面和密碼的規則,以及授權使用的技術實現等。 ``` @EnableWebSecurity @Configuration @EnableGlobalMethodSecurity(prePostEnabled = true) public class RayWebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().and().formLogin().loginPage("/login").failureForwa rdUrl("/login-error").successForwardUrl("/index").permitAll(); } @Bean public PasswordEncoder passwordEncoder() { return RayPasswordEncoder.getInstance(); } } ``` 3、Spring Security 提供了很多種如內存方式、LDAP方式實現認證,但我們采用數據庫賬號角色權限表來實現;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看