一文詳解SpringSecurity的基本用法_第1頁
一文詳解SpringSecurity的基本用法_第2頁
一文詳解SpringSecurity的基本用法_第3頁
一文詳解SpringSecurity的基本用法_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一文詳解SpringSecurity的基本用法@Override

publicUserDetailsloadUserByUsername(Stringusername)throwsUsernameNotFoundException{

if(!USERNAME.equals(username)){

thrownewUsernameNotFoundException("用戶名不存在");

UserDetailsuserDetails=newUser(USERNAME,PASSWORD,AuthorityUmaSeparatedStringToAuthorityList("admin,common"));

returnuserDetails;

重啟項目看看,輸入定義的用戶名和密碼,發(fā)現(xiàn)登錄不了,查看控制臺發(fā)現(xiàn)報錯,提示如下:

報錯的原因是沒有使用任何的PasswordEncoder,我們輸入的密碼沒有用加密工具進行加密。SpringSecurity其實已經(jīng)給我們提供了很多的PasswordEncoder。在org.springframework.security.crypto.password包下有一個PasswordEncoder接口,看看他的實現(xiàn)類

把這個PasswordEncoder的任意一個我們需要用來加密密碼的實現(xiàn)類的Bean注入到容器里面,就可以直接拿來使用,代碼如下:

@Configuration

publicclassSecurityConfigextendsWebSecurityConfigurerAdapter{

@Bean

publicBCryptPasswordEncoderbCryptPasswordEncoder(){

returnnewBCryptPasswordEncoder();

修改MyUserDetailsServiceImpl類如下:

@Service

publicclassMyUserDetailsServiceImplimplementsUserDetailsService{

privatestaticfinalStringUSERNAME="admin";

privatestaticfinalStringPASSWORD="admin123";

@Resource

BCryptPasswordEncodercryptPasswordEncoder;

@Override

publicUserDetailsloadUserByUsername(Stringusername)throwsUsernameNotFoundException{

if(!USERNAME.equals(username)){

thrownewUsernameNotFoundException("用戶名不存在");

UserDetailsuserDetails=newUser(USERNAME,cryptPasswordEncoder.encode(PASSWORD),AuthorityUmaSeparatedStringToAuthorityList("admin,common"));

returnuserDetails;

重啟項目再次測試,輸入定義的賬號和密碼。即可訪問到接口文檔頁面。

4.如何修改登錄頁面

覺得默認的登錄頁面很丑,我們?nèi)绾味x自己的登錄頁面呢?方法也很簡單,首先我們先去準備一個登錄頁面。如下:

前端代碼如下:

formaction="/login"

h1登錄/h1

div

inputtype="text"name="user"

spandata-placeholder="Username"/span

/div

div

inputtype="password"name="pass"

spandata-placeholder="Password"/span

/div

inputtype="submit"value="登錄"

div

Don'thaveaccountahref="#"rel="externalnofollow"Signup/a

/div

/form

把登錄頁面文件存放到項目的資源文件夾中static目錄下,然后在SecurityConfig重寫configure(HttpSecurityhttp)這個方法,代碼如下:

@Override

protectedvoidconfigure(HttpSecurityhttp)throwsException{

http.formLogin()

.loginPage("/login.html")#自定義登錄頁面

.usernameParameter("user")#對應(yīng)前端表達name屬性

.passwordParameter("pass")#對應(yīng)前端表達name屬性

.loginProcessingUrl("/login")

.defaultSuccessUrl("/doc.html")#登錄成功后跳轉(zhuǎn)的頁面地址

.failureUrl("/loginerror=true")

.and()

.authorizeRequests()

.antMatchers("/login.html").permitAll()#放通登錄頁面

.anyRequest().authenticated();#其他請求都

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論