發表文章

目前顯示的是 7月, 2024的文章

基本 Spring security 快速入門

圖片
基本 Spring security 快速入門 最近學了 spring security 遇到一些 6 版和舊版的一些差異,所以想說寫一下快速入門,但有些前情提要: 這個入門不包含 spring security 的使用概念,關於這部分相當推薦閱讀 spring security 實戰這本書 本快速入門不包含 OAuth2 和權限控管,只會使用 Basic 驗證,但建議先學會入門之後再加深. 由於個人專案有使用到 swagge ,因此也會有相對的教學 主要使用到的 spring security 元件: org.springframework.security.authentication.AuthenticationProvider org.springframework.security.crypto.password.PasswordEncoder org.springframework.security.core.userdetails.UserDetailsService org.springframework.security.core.userdetails.UserDetails 撰寫 UserDetailsService 首先先在 service 新增 class 並且 implements UserDetailsService 實作的時候會發現需要實作: UserDetails loadUserByUsername ( String username ) throws UsernameNotFoundException ; 依照 function name 可以知道要實現的功能是去 DB 或 redis 之類的地方取得使用者資訊,並且將資料放進 UserDetails 後 return 出去,因此在開始寫 loadUserByUsername 方法之前需要先實作 UserDetails 實作 UserDetails 實作的時候會發現我們需要實作 getAuthorities getPassword getUsername isAccountNonExpired isAccountNonLocked isCredentialsNonExpired isEnabled 基本上依照 functio...