开发喵星球

若依不登录直接访问(十八)

单体版

在ShiroConfig中设置filterChainDefinitionMap配置url=anon

/admins/**=anon               # 表示该 uri 可以匿名访问
    /admins/**=auth               # 表示该 uri 需要认证才能访问
    /admins/**=authcBasic         # 表示该 uri 需要 httpBasic 认证
    /admins/**=perms[user:add:*]  # 表示该 uri 需要认证用户拥有 user:add:* 权限才能访问
    /admins/**=port[8080]         # 表示该 uri 需要使用 8080 端口
    /admins/**=roles[admin]       # 表示该 uri 需要认证用户拥有 admin 角色才能访问
    /admins/**=ssl                # 表示该 uri 需要使用 https 协议
    /admins/**=user               # 表示该 uri 需要认证或通过记住我认证才能访问
    /logout=logout                # 表示注销,可以当作固定配置

    注意:
    anon,authcBasic,authc,user 是认证过滤器。
    perms,roles,ssl,rest,port 是授权过滤器。

前后端分离版

方法1:在 SecurityConfig 中设置httpSecurity 配置匿名访问

// 使用 permitAll() 方法所有人都能访问,包括带上 token 访问
.antMatchers("/admins/**").permitAll()

// 使用 anonymous() 所有人都能访问,但是带上 token 访问后会报错
.antMatchers("/admins/**").anonymous()

方法2:在对应的方法或类上面使用@Anonymous注解。

// 类上定义匿名注解,作用于所有的方法
@Anonymous
@RestController
@RequestMapping("/system/xxxx")
public class SysXxxxController extends BaseController
{
}

// 方法定义匿名注解,作用于单独的方法
@Anonymous
@GetMapping("/list")
public List<SysXxxx> list(SysXxxx xxxx)
{
    return xxxxList;
}

匿名访问的方法上面@PreAuthorize权限注解也需要去掉,因为已经使用匿名访问了,权限自然也不需要去验证了.

   
分类:Java/OOP 作者:无限繁荣, 吴蓉 发表于:2023-10-18 10:04:37 阅读量:94
<<   >>


powered by kaifamiao