SpringSecurityOAuth 访问 oauth/authorize 会被拦截

2020-01-22 13:29:58 +08:00
 rqxiao

在代码中有配置"/oauth/*" 不需要登录认证

            .and()
            .authorizeRequests()//对下面请求
            .antMatchers("/authentication/require","/oauth/*"
                    ,securityProperties.getBrowser().getLoginPage()
                    ,"/code/*").permitAll()//对这些个请求不需要身份验证
            .anyRequest()//任何请求
            .authenticated()//都需要认证 /登录
3114 次点击
所在节点    程序员
3 条回复
skypyb
2020-01-22 18:56:00 +08:00
实现入参是 WebSecurity 这个参数的方法:configure(WebSecurity web)
然后方法体内书写
web.ignoring().antMatchers(HttpMethod.POST,"/oauth/*");

试一下
rqxiao
2020-01-23 10:43:53 +08:00
@skypyb 额 查了半天说貌似 SpringSecurityOAuth 的授权码模式 获取授权码(/oauth/authorize )这一步是需要登录(例如 httpbasic 方式)的,密码模式( password )就是直接传账密获取 token,就只有一步了,不需要登录
也有可能我说的不太对
hantsy
2020-01-23 11:48:20 +08:00
@rqxiao 用 Code Flow 的时候, /oauth/* 需要 ClientId,ClientSecret,这个一般通过 HttpBasic 传递,也可以通过 Form 参数方式(一般可配置)。

Resource owner Password Flow 不是所有的 IdP 都支持,一般 Authorization Code Flow 最常见。Client Credentials 设计用 Client 操作。Implicit 是简化的 Code, 很多 IDP 认为有安全问题,不支持。

https://oauth.net/2/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/639842

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX