最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Security用戶定義?

 更新時(shí)間:2022年02月18日 14:10:34   作者:周杰倫本人  
這篇文章主要介紹了Spring?Security用戶定義,大家都知道?Spring?Security的用戶定義有很多方式,其實(shí)主要有兩種,基于內(nèi)存的和基于數(shù)據(jù)庫的,下面我給大家簡單介紹一下這兩種方式,需要的朋友可以參考下

基于內(nèi)存的和基于數(shù)據(jù)庫的,下面我給大家簡單介紹一下這兩種方式。

一、基于內(nèi)存

Spring Security中的配置:

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
? ? InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
? ? manager.createUser(User.withUsername("admin").password("{noop}123").roles("admin").build());
? ? manager.createUser(User.withUsername("sang").password("{noop}123").roles("user").build());
? ? auth.userDetailsService(manager);
}

二、基于mybatis

MyUserDetailsService

@Service
public class MyUserDetailsService implements UserDetailsService {
? ? @Autowired
? ? UserMapper userMapper;
? ? @Override
? ? public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
? ? ? ? User user = userMapper.loadUserByUsername(username);
? ? ? ? if (user == null) {
? ? ? ? ? ? throw new UsernameNotFoundException("用戶不存在");
? ? ? ? }
? ? ? ? user.setRoles(userMapper.getRolesByUid(user.getId()));
? ? ? ? return user;
? ? }
}

User類:

public class User implements UserDetails {
? ? private Integer id;
? ? private String username;
? ? private String password;
? ? private Boolean enabled;
? ? private Boolean accountNonExpired;
? ? private Boolean accountNonLocked;
? ? private Boolean credentialsNonExpired;
? ? private List<Role> roles = new ArrayList<>();

? ? @Override
? ? public String toString() {
? ? ? ? return "User{" +
? ? ? ? ? ? ? ? "id=" + id +
? ? ? ? ? ? ? ? ", username='" + username + '\'' +
? ? ? ? ? ? ? ? ", password='" + password + '\'' +
? ? ? ? ? ? ? ? ", enabled=" + enabled +
? ? ? ? ? ? ? ? ", accountNonExpired=" + accountNonExpired +
? ? ? ? ? ? ? ? ", accountNonLocked=" + accountNonLocked +
? ? ? ? ? ? ? ? ", credentialsNonExpired=" + credentialsNonExpired +
? ? ? ? ? ? ? ? ", roles=" + roles +
? ? ? ? ? ? ? ? '}';
? ? }

? ? @Override
? ? public Collection<? extends GrantedAuthority> getAuthorities() {
? ? ? ? List<SimpleGrantedAuthority> authorities = new ArrayList<>();
? ? ? ? for (Role role : roles) {
? ? ? ? ? ? authorities.add(new SimpleGrantedAuthority(role.getName()));
? ? ? ? }
? ? ? ? return authorities;
? ? }

? ? @Override
? ? public String getPassword() {
? ? ? ? return password;
? ? }

? ? @Override
? ? public String getUsername() {
? ? ? ? return username;
? ? }

? ? @Override
? ? public boolean isAccountNonExpired() {
? ? ? ? return accountNonExpired;
? ? }

? ? @Override
? ? public boolean isAccountNonLocked() {
? ? ? ? return accountNonLocked;
? ? }

? ? @Override
? ? public boolean isCredentialsNonExpired() {
? ? ? ? return credentialsNonExpired;
? ? }

? ? @Override
? ? public boolean isEnabled() {
? ? ? ? return enabled;
? ? }

? ? public void setId(Integer id) {
? ? ? ? this.id = id;
? ? }

? ? public void setUsername(String username) {
? ? ? ? this.username = username;
? ? }

? ? public void setPassword(String password) {
? ? ? ? this.password = password;
? ? }

? ? public void setEnabled(Boolean enabled) {
? ? ? ? this.enabled = enabled;
? ? }

? ? public void setAccountNonExpired(Boolean accountNonExpired) {
? ? ? ? this.accountNonExpired = accountNonExpired;
? ? }

? ? public void setAccountNonLocked(Boolean accountNonLocked) {
? ? ? ? this.accountNonLocked = accountNonLocked;
? ? }

? ? public void setCredentialsNonExpired(Boolean credentialsNonExpired) {
? ? ? ? this.credentialsNonExpired = credentialsNonExpired;
? ? }

? ? public Integer getId() {
? ? ? ? return id;
? ? }

? ? public List<Role> getRoles() {
? ? ? ? return roles;
? ? }

? ? public void setRoles(List<Role> roles) {
? ? ? ? this.roles = roles;
? ? }
}

Spring Security中的配置:

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
? ? auth.userDetailsService(myUserDetailsService);
}

到此這篇關(guān)于Spring Security用戶定義 的文章就介紹到這了,更多相關(guān)Spring Security用戶定義 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring中@ComponentScan自動掃描并指定掃描規(guī)則

    spring中@ComponentScan自動掃描并指定掃描規(guī)則

    本文主要介紹了spring中@ComponentScan自動掃描并指定掃描規(guī)則,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 教你如何把Eclipse創(chuàng)建的Web項(xiàng)目(非Maven)導(dǎo)入Idea

    教你如何把Eclipse創(chuàng)建的Web項(xiàng)目(非Maven)導(dǎo)入Idea

    這篇文章主要介紹了教你如何把Eclipse創(chuàng)建的Web項(xiàng)目(非Maven)導(dǎo)入Idea,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • WebUploader實(shí)現(xiàn)圖片上傳功能

    WebUploader實(shí)現(xiàn)圖片上傳功能

    這篇文章主要為大家詳細(xì)介紹了WebUploader實(shí)現(xiàn)圖片上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Java消息隊(duì)列RabbitMQ入門詳解

    Java消息隊(duì)列RabbitMQ入門詳解

    這篇文章主要介紹了Java消息隊(duì)列RabbitMQ入門詳解,RabbitMQ是使用Erlang語言開發(fā)的開源消息隊(duì)列系統(tǒng),基于AMQP協(xié)議 來實(shí)現(xiàn),AMQP的主要特征是面向消息、隊(duì)列、路由(包括點(diǎn)對點(diǎn)和發(fā)布 /訂閱)、可靠性、安全,需要的朋友可以參考下
    2023-07-07
  • Spring實(shí)現(xiàn)在非controller中獲取request對象

    Spring實(shí)現(xiàn)在非controller中獲取request對象

    這篇文章主要介紹了Spring實(shí)現(xiàn)在非controller中獲取request對象方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡單使用方法解析

    Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡單使用方法解析

    這篇文章主要介紹了Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡單使用方法解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • 詳解SpringBoot配置文件啟動時(shí)動態(tài)配置參數(shù)方法

    詳解SpringBoot配置文件啟動時(shí)動態(tài)配置參數(shù)方法

    這篇文章主要介紹了詳解SpringBoot配置文件啟動時(shí)動態(tài)配置參數(shù)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java中CyclicBarrier和CountDownLatch的用法與區(qū)別

    Java中CyclicBarrier和CountDownLatch的用法與區(qū)別

    CyclicBarrier和CountDownLatch這兩個(gè)工具都是在java.util.concurrent包下,并且平時(shí)很多場景都會使用到。本文將會對兩者進(jìn)行分析,記錄他們的用法和區(qū)別,感興趣的可以了解一下
    2021-08-08
  • Springboot如何解決前端請求跨域的問題

    Springboot如何解決前端請求跨域的問題

    這篇文章主要介紹了Springboot如何解決前端請求跨域的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java實(shí)現(xiàn)XML與JSON秒級轉(zhuǎn)換示例詳解

    Java實(shí)現(xiàn)XML與JSON秒級轉(zhuǎn)換示例詳解

    這篇文章主要為大家介紹了Java實(shí)現(xiàn)XML與JSON秒級轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09

最新評論

富锦市| 庄浪县| 碌曲县| 和林格尔县| 蓝田县| 松桃| 汝州市| 萨迦县| 缙云县| 自治县| 女性| 南汇区| 固镇县| 云霄县| 石家庄市| 麻城市| 舒兰市| 江城| 贵阳市| 梓潼县| 苍山县| 家居| 嘉义市| 凯里市| 南靖县| 阿瓦提县| 河北区| 朝阳县| 遂川县| 镶黄旗| 沛县| 贺兰县| 沿河| 全椒县| 陕西省| 海兴县| 新营市| 桂平市| 祥云县| 涡阳县| 西平县|