自定义AuthenticationProvider的简单例子

  • xml 配置:

 

<authentication-manager>
        <authentication-provider ref="myAuthenticationProvider" />
    </authentication-manager>
 
  <beans:bean id="userDetailsService" class="net.mantis.security.auth.NMUserDetailsService"/>
  <beans:bean id="myAuthenticationProvider" class="net.mantis.security.auth.MyAuthenticationProvider">
       <beans:property name="userDetailsService">
            <beans:bean class="net.mantis.security.auth.NMUserDetailsService">            
            </beans:bean>
        </beans:property>
  </beans:bean>

 

 

  • net.mantis.security.auth.MyAuthenticationProvider

 

public class MyAuthenticationProvider implements AuthenticationProvider {
 
    UserDetailsService userDetailsService;

    public Authentication authenticate(Authentication authentication)
            throws AuthenticationException {
         //username
        System.out.println("user name: "+authentication.getName());
        //password
        System.out.println("password: "+authentication.getCredentials());
        System.out.println("getPrincipal: "+authentication.getPrincipal());
        System.out.println("getAuthorities: "+authentication.getAuthorities());
        System.out.println("getDetails: "+authentication.getDetails());

        UserDetails userDetails = (UserDetails)this.userDetailsService.loadUserByUsername(authentication.getName());
      
        UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken(
                userDetails, authentication.getCredentials(),userDetails.getAuthorities());
        return result;
    }


    public boolean supports(Class authentication) {
         return true;
    }

    public void setUserDetailsService(UserDetailsService userDetailsService){
        this.userDetailsService = userDetailsService;
    }
}

 

  • net.mantis.security.auth.NMUserDetailsService

public class NMUserDetailsService implements UserDetailsService {

    @Override
    public UserDetails loadUserByUsername(String userName)
            throws UsernameNotFoundException {
        ArrayList list = new ArrayList();
        list.add(new SimpleGrantedAuthority("ROLE_SUPERVISOR"));
        User details = new User("rod", "koala", list);
        return details;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值