/oauth/token 修改路径问题 blade-auth

Blade 未结 2 832
huarui
huarui 剑童 2022-09-06 12:20

由于安全评审需要,不允许http://ip:8000/api/blade-auth/oauth/token?tenantId=000000&username=admin&...  这种的登录方式。要求post,提交内容放在body里,估修改blade-auth代码封装。

    /**
     * * 自定义网页登录接口
     *
     * @return
     */
    @PostMapping("/oauth/isweb-login")
    public R<OAuth2AccessToken> getToken(Principal principal, @Validated @RequestBody LoginDto loginDto) throws Exception {


        Map<String, String> map = new HashMap<>();
        map.put("username", loginDto.getUserName());
        map.put("password", loginDto.getPassword());
        map.put("tenantId", loginDto.getTenantId());
        map.put("scope", loginDto.getScope());
        map.put("type", loginDto.getType());
        // 获取token授权
        log.info("======正在登录==,登录信息:{}", map);
        OAuth2AccessToken oAuth2AccessToken = tokenEndpoint.postAccessToken(principal, map).getBody();
        return R.data(oAuth2AccessToken);
    }

一、该问题的重现步骤是什么?

1. 不能正常登录,返回Full authentication is required to access this resource。或者There is no client authentication. Try adding an appropriate authentication filter.



二、你期待的结果是什么?实际看到的又是什么?

能够正常获取token登录


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex产品,版本2.8.0.RELEASE。部署在docker环境

四、请提供详细的错误堆栈信息,这很重要。

无堆栈信息,

五、若有更多详细信息,请在下面提供。

2条回答
  • 这个是security oauth 2 jar包提供的接口。

    0 讨论(0)
  • 2022-09-07 10:25

    这不是bladex的封装,而是springcloud的封装,也是oauth2的统一标准,你们安全评审是要去改oauth2标准么?改了标准以后就没法支持其他平台无缝接入了。

    如果是这样的话推荐自己写一个中转的接口,调用中转接口后,代码内部去调用oauth2本来的接口,这样就能实现调用了。但我们觉得这样做毫无意义,就好比有个人说为什么一分钟是60秒,我要改成100秒,结果遇到其他人对时间的时候,就完全对不上了。

    0 讨论(0)
提交回复