国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring4和SpringSecurity4的整合(二)連接mybatis和mysql

NoraXie / 1529人閱讀

摘要:在上一篇基本配置了一些文件中,基本可以在文件中指定用戶名和密碼來進行實現的驗證,這次和一起來配合使用加入的配置文件別名在的中配置數據源查找配置事物然后建立層,和層以及對應這里省略實

在上一篇基本配置了一些文件中,基本可以在文件中指定用戶名和密碼來進行實現SpringSecurity的驗證,
這次和mynatis一起來配合使用

加入mybatis的配置文件:

mybatis-config.xml




    
    
        
    

在spring的ApplicationContext.xml中配置數據源
ApplicationContext.xml



    
    
    
        
        
        
        
    
    
        
        
        
    
    
        
        
    
    
    
        
    

然后建立dao層,和server層以及對應mapper(這里省略)
實現UserDetailService里面的loadUserByUsername方法

public class MyUserDetailService implements UserDetailsService  {
    @Autowired
    UserDao userdao;
    @Override
    public UserDetails loadUserByUsername(String username)
            throws UsernameNotFoundException {
        MyUser user =userdao.getUserByName(username);
        if(user==null)
        {
            throw new  UsernameNotFoundException("找不到該用戶");
        }
//這里最好的做法就是遍歷用戶身份,獲取用戶權限
//        Collection grantedAuthorities = new ArrayList<>();
//        SimpleGrantedAuthority grantedAuthority = new SimpleGrantedAuthority(role);
//        grantedAuthorities.add(grantedAuthority);
        return new MyUserDetail(user, getAuthorities(user.getUser_role()));
    }

    private Collection getAuthorities(String role) {
        Collection grantedAuthorities = new ArrayList<>();
        SimpleGrantedAuthority grantedAuthority = new SimpleGrantedAuthority(role);
        grantedAuthorities.add(grantedAuthority);
        return grantedAuthorities;
    }

}

UserDetail

public class MyUserDetail implements UserDetails {
    private MyUser myUser;
    private Collection authorities;

    public MyUserDetail(MyUser user,Collection authorities) {
        this.myUser = user;
        this.authorities = authorities;
    }

    @Override
    public Collection getAuthorities() {
        // TODO Auto-generated method stub
        return authorities;
    }

    @Override
    public String getPassword() {
        return myUser.getUser_password();
    }

    @Override
    public String getUsername() {
        return myUser.getUser_name();
    }
//下面的方法可以以后再添加
    @Override
    public boolean isAccountNonExpired() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean isAccountNonLocked() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean isEnabled() {
        // TODO Auto-generated method stub
        return false;
    }

AuthenticationProvider類

關于類中的這個UsernamePasswordAuthenticationToken,Spring官方文檔中給出的說明如下:
1. The username and password are obtained and combined into an instance of UsernamePasswordAuthenticationToken (an instance of
the Authentication interface, which we saw earlier).
2. The token is passed to an instance of AuthenticationManager for validation.
3. The AuthenticationManager returns a fully populated Authentication instance on successful authentication.
4. The security context is established by calling SecurityContextHolder.getContext().setAuthentication(… ) , passing in the returned
authentication object.
UsernamePasswordAuthenticationToken繼承AbstractAuthenticationToken實現Authentication 所以當在頁面中輸入用戶名和密碼之后首先會進入到UsernamePasswordAuthenticationToken驗證(Authentication),然后生成的Authentication會被交由AuthenticationManager來進行管理而AuthenticationManager管理一系列的AuthenticationProvider,而每一個Provider都會通UserDetailsService和UserDetail來返回一個以UsernamePasswordAuthenticationToken實現的帶用戶名和密碼以及權限的Authentication
public class SecurityProvider implements AuthenticationProvider {
    @Autowired
    private MyUserDetailService userDetailsService;
    @Override
    public Authentication authenticate(Authentication authentication)
            throws AuthenticationException {
//
        UsernamePasswordAuthenticationToken token = (UsernamePasswordAuthenticationToken) authentication;
        UserDetails userDetails = userDetailsService.loadUserByUsername(token.getName());
        if (userDetails == null) {
            throw new UsernameNotFoundException("找不到該用戶");
        }
        if(!userDetails.getPassword().equals(token.getCredentials().toString()))
        {
              throw new BadCredentialsException("密碼錯誤");
        }
        return new UsernamePasswordAuthenticationToken(userDetails,userDetails.getPassword(),userDetails.getAuthorities());
    }

    @Override
    public boolean supports(Class authentication) {
        // TODO Auto-generated method stub
        return UsernamePasswordAuthenticationToken.class.equals(authentication);
    }

}
項目地址:https://github.com/Somersames...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66718.html

相關文章

  • Spring4SpringSecurity4整合(一)

    摘要:的官方文檔及其簡單,他的示例配置就是在文件中把用戶名和密碼寫固定了,然而在實際工作中是不可能的,參考了下網上的教程發現良莠不齊,特此寫下記錄學習過程首先導入包配置后面直接寫這里會提示出錯,提示找不 SpringSecurity的官方文檔及其簡單,他的示例配置就是在xml文件中把用戶名和密碼寫固定了,然而在實際工作中是不可能的,參考了下網上的教程發現良莠不齊,特此寫下記錄學習過程首先po...

    sorra 評論0 收藏0
  • 基于注解方式配置springMVC 并整合mybatis()

    摘要:基于注解方式配置并整合一接上篇文章,如下是整合數據層。整合時,如果不加上就無法啟動容器。 基于注解方式配置springMVC 并整合mybatis(一) 接上篇文章,如下是整合數據層。 spring-mybatis.xml ...

    peixn 評論0 收藏0
  • Nginx 搭建圖片服務器

    摘要:搭建圖片服務器本章內容通過和搭建圖片服務器。第二個部分是為了更好的體驗上傳,批量上傳,回顯功能的富文本編輯器。總結搭建服務器的思維實現上傳圖片的功能上傳圖片的功能源碼搭建圖片服務器到這里就結束了,有什么不足的地方,請賜教。 Nginx 搭建圖片服務器 本章內容通過Nginx 和 FTP 搭建圖片服務器。在學習本章內容前,請確保您的Linux 系統已經安裝了Nginx和Vsftpd。 N...

    jas0n 評論0 收藏0
  • 基于 SpringBoot2.0+優雅整合 SpringBoot+Mybatis

    摘要:基于最新的,是你學習的最佳指南。驅動程序通過自動注冊,手動加載類通常是不必要。由于加上了注解,如果轉賬中途出了意外和的錢都不會改變。三的方式項目結構相比于注解的方式主要有以下幾點改變,非常容易實現。公眾號多篇文章被各大技術社區轉載。 Github 地址:https://github.com/Snailclimb/springboot-integration-examples(Sprin...

    gghyoo 評論0 收藏0
  • SpringBoot2.0之五 優雅整合SpringBoot2.0+MyBatis+druid+Pa

    摘要:當禁用時,所有關聯對象都會即時加載。不同的驅動在這方便表現不同。參考驅動文檔或充分測試兩種方法來決定所使用的驅動。需要適合的驅動。系統默認值是設置字段和類是否支持駝峰命名的屬性。 ??上篇文章我們介紹了SpringBoot和MyBatis的整合,可以說非常簡單快捷的就搭建了一個web項目,但是在一個真正的企業級項目中,可能我們還需要更多的更加完善的框架才能開始真正的開發,比如連接池、分...

    hatlonely 評論0 收藏0

發表評論

0條評論

NoraXie

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<