SpringSecurity

发布时间 2023-04-21 20:21:35作者: binbinx

 https://www.cnblogs.com/SjhCode/p/SpringSecurity.html

  • permitAll() :无条件允许任何形式访问,不管你登录还是没有登录。
  • anonymous() :允许匿名访问,也就是没有登录才可以访问。
  • denyAll() :无条件决绝任何形式的访问。
  • authenticated():只允许已认证的用户访问。
  • fullyAuthenticated() :只允许已经登录或者通过 remember-me 登录的用户访问。
  • hasRole(String) : 只允许指定的角色访问。
  • hasAnyRole(String) : 指定一个或者多个角色,满足其一的用户即可访问。
  • hasAuthority(String) :只允许具有指定权限的用户访问
  • hasAnyAuthority(String) :指定一个或者多个权限,满足其一的用户即可访问。
  • hasIpAddress(String) : 只允许指定 ip 的用户访问

 

Spring Security 中的 hasRole 和 hasAuthority 有区别吗?https://mp.weixin.qq.com/s/GTNOa2k9_n_H0w24upClRw

Spring Security 提供了多种加密算法的实现,开箱即用,非常方便。这些加密算法实现类的父类是 PasswordEncoder ,如果你想要自己实现一个加密算法的话,也需要继承 PasswordEncoder

 
public interface PasswordEncoder {
    // 加密也就是对原始密码进行编码
    String encode(CharSequence var1);
    // 比对原始密码和数据库中保存的密码
    boolean matches(CharSequence var1, String var2);
    // 判断加密密码是否需要再次进行加密,默认返回 false
    default boolean upgradeEncoding(String encodedPassword) {
        return false;
    }
}
 

 

用来模拟一个一个真实用户,并且可以赋予权限。

@WithMockUser(username "user-id-18163138155", authorities "ROLE_TEACHER")