当前位置: 首页 > 网络应用技术

Springboot Springsecurity Persiss

时间:2023-03-06 11:12:36 网络应用技术

  支持方法级别的权限控制。在这种机制中,我们可以在任何层的任何方法上添加权限注释。添加注释的方法将自动保护。它仅允许特定的用户访问返回权限控制的目的。课程我们也可以自定义。

  2.然后创建一个新的安全配置类

  默认值已禁用。如果要打开注释,则需要在继承的类中添加其他解决方案,并将其定义为

  我们看到有三个字段,一个字段支持每个字段代码,默认值是。然后让我们谈谈这三个一般注释。

  prepatnabled = true的角色是启用@preauthorize和@postauthorize启用弹簧安全性的注释。

  SecuredEnabled = true的作用是启用@Scured Spring Security的注释。

  JSR250NABLED = TRUE的角色是启用@RolealLowed注释

  有关集成的更多详细使用,请参阅我的Springboot+Springsecurity+JWT Solid Restfulapi权限的两个部分

  弹簧安全核心接口用户权威的获取,原理

  观察到JSR-250标准注释的主要注释

  无需说代表拒绝并通过了。

  例子

  只要标记的方法具有用户,任何权限就可以访问权限。

  在功能和使用方法方面

  主要注释

  @Secure

  例如:

  这意味着只有字符的用户才能访问方法。

  这意味着用户具有两个字符中的任何一个字符,并且可以访问。

  另一点是@secured,不支持Spring EL表达式

  开口后,支持Spring EL表达式非常强大。如果没有访问方法的权限,则将抛出AccessDeniedException。

  主要注释

  3. - 执行后执行,在这里您可以调用方法的返回值,然后过滤或处理或修改返回值并返回

  @preauthorize注意使用@preauthorize(“ hasrole('roun_viewer')”)等效于@secured(“ prole_viewer”)。

  它也可以用同一件事代替:。

  此外,我们还可以在该方法的参数上使用表达式:

  在执行方法之前执行。在这里,您可以调用该方法的参数或获取参数值。这是Java8参数参数的使用来反映特征。如果没有JAVA8,您也可以使用Spring Security @P的@P标记参数,或使用Spring Data @@在参数参数。

  在这里,在该方法执行之前,判断方法参数用户ID的值等于保存在主体中的当前用户的用户ID,或者当前用户是否具有cool_admin权限。两者可以访问此方法。

  @postauthorize评论可以在执行该方法以获取该方法的返回值之后执行,并且您可以根据此方法确定最终授权结果(允许访问或访问):

  在上面的代码中,仅当当前登录的用户名时,该方法的返回值中的用户名才允许访问。

  请注意,如果EL是False,则该方法已被执行并可以回滚。EL变量returnObject指示返回对象。

  @prefilter和@postfilter注意使用Spring Security提供注释来过滤传递参数:

  当用户名中的子项与当前登录用户的当前用户名不同时,将保留;当用户名中的子项与当前登录用户的当前用户名相同时,请删除它。例如,当前用户的用户名是Zhangsan。目前,用户名的值是@prefilter实际介绍的用户名的值

  如果执行方法包含集合的多种类型的参数,则尚不清楚filterObject以过滤哪个集合参数是。这次,您需要添加filterTarget属性以指定特定参数名称:

  同样,我们还可以使用带注释的集合进行过滤:

  目前,FilterObject表示返回值。如果根据上述代码实现它,则将实现:删除与返回值中与当前登录用户相同的用户名的子项。

  如果我们需要在多种方法中使用相同的安全注释,则可以通过创建元通道来改善项目的维护。

  例如,创建以下元通量:

  然后,您可以将注释直接添加到相应的方法:

  在生产项目中,由于元注射与业务逻辑和安全框架分开,因此使用元注释是一个很好的选择。

  如果类中的所有方法都是同一安全注释的所有应用程序,那么此时,应将安全注释提高到类:

  实现了上述代码:访问GetSystemear和GetSystemdate方法需要cool_admin权限。

  当安全注释无法满足我们的需求时,您也可以应用多个安全注释:

  目前,Spring Security将在执行该方法之前执行@preaturite的安全策略,并在执行该方法后执行@postauthorize的安全策略。

  在这里结合我们的经验,给出以下两个技巧:

  作者:Kenx