【已解决】Koca安全框架,获取当前登录人

KOCA版本 :4.0
KOCA模块 :koca-admin
模块版本 :4.0
场景 :
使用Koca权限的全量配置,配置了 strategy: token #模式选择,还有token模式,通过:
AuthContextHolder.getPrincipal() 获取用户信息失败
访问接口也并未拦截接口,不提供token也可以直接访问
问题 :
获取当前登录人失败、接口请求头无token也可以调用
报错细节 :

尝试解决方案:

1 个赞

是安全认证的那种场景?
1、单体
2、网关做认证
3、认证中心服务做认证

http://koca.szkingdom.com/koca-base_v4.1.0/Development_Boot/Security_Certification/Security_Develop_Guide.html

这里有三种场景的详细说明

现在我们的环境应该是微服务环境,无网关

嗯,看一下报错有服务有没有引入

<dependency>
    <groupId>com.szkingdom.koca.boot</groupId>
    <artifactId>koca-boot-starter-auth-client</artifactId>
</dependency>

我们是4.0的版本,是不是引入:

<dependency>
    <groupId>com.szkingdom.koca.boot</groupId>
    <artifactId>koca-boot-starter-auth-server</artifactId>
</dependency>

就好了


是,只要引入这个应该就正常了,你试一下

注意,认证服务和普通服务,引的包是不一样的,看上图

我尝试一下

现在没有报错了,但是获取的用户信息为空:
image
这是我的请求:


这是我的配置:

我不带token的情况下,并没有拦截我的请求,而是直接走到接口内部了

格式好像不对,auth前面有几个空格?

image
两个的

把全量配置和pom文件发出来看一下,正常情况下会先鉴权

Desktop.zip (5.6 KB)

这里放过了所有请求

image
这样的配置,一样可以直接请求进来,并没有拦截

这个token是有效的吗?
用https://tooltt.com/jwt-decode/看一下token详细信息,理论上用错误的token就不会请求进去


按理是有效的,但是即便我不传token,也可以进入接口

嗯,我本地demo一下这种场景,请关注一下这个贴子