• UsernamePasswordAuthenticationToken


    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/MySecurity

     http://www.jdon.com/dl/best/securing-rest-services-with-spring.html.html

    http://stackoverflow.com/questions/8764545/how-to-get-active-users-userdetails/8769670#8769670

  • 相关阅读:
    使非标准 Win32 控件或自画控件也具有 Windows XP 的界面风格
    MapInfo格式到ArcInfo格式的转换
    DICOM医学图像文件格式
    香港身份证
    Cheap Tricks: Let's Talk About METADATA TypeLibs
    ASP中使用ADO访问数据源
    DirectX 9 编程 DirectX窗口
    3DES Source Code
    OLEDB Resource(Session) Pooling (在Ado开发中使用连接池)
    《仙剑奇侠传4》仙剑问答全答案
  • 原文地址:https://www.cnblogs.com/softidea/p/6716807.html
Copyright © 2020-2023  润新知