黑马程序员 springsecurity Demo 常见异常解决方案

  1. user is disable
  2. bad credents
  3. Access is denied

解决

  1. enable=true 即userInfo.getStatus返回值需要为true
 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        UserInfo userInfo = null;
        try {
            userInfo = userDao.findByUsername(username);
        } catch (Exception e) {
            e.printStackTrace();
        }
        //处理自己的用户对象封装成UserDetails
        //  User user=new User(userInfo.getUsername(),"{noop}"+userInfo.getPassword(),getAuthority(userInfo.getRoles()));
        User user = new User(userInfo.getUsername(), userInfo.getPassword(), userInfo.getStatus() == 0 ? true : false, true, true, true, getAuthority(userInfo.getRoles()));
        return user;
    }

2 密码没有经过解密

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

3 web.xml 中默认页面与security.xml中的默认页面不一致导致,其实就是没有权限然后跳转到登录页面

	<welcome-file-list>
        <welcome-file>login.html</welcome-file>
        <welcome-file>login.htm</welcome-file>
        <welcome-file>login.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

 <!-- 定义跳转的具体的页面 -->
        <security:form-login
                login-page="/login.jsp"
                login-processing-url="/login.do"
                default-target-url="/index.jsp"
                authentication-failure-url="/failer.jsp"
                authentication-success-forward-url="/pages/main.jsp"
        />

你可能感兴趣的:(spring,security)