我无法配置规则以符合以下条件:
通过GET请求(甚至是“ / oauth2 / token”)发送时,我对上述端点的每个请求均得到验证和授权。 POST请求被拒绝。
我的规则如下:
// @formatter:off
http.authorizeRequests()
.antMatchers(HttpMethod.GET,"/logout", "/user" ,"/oauth2/auth", "/error**").permitAll()
.antMatchers(HttpMethod.POST, "/oauth2/token").permitAll()
.anyRequest().authenticated()
.and()
.exceptionHandling().authenticationEntryPoint((request, response, e) -> {
//create Json Object
try {
JSONObject values = new JSONObject();
values.put("timestamp", String.valueOf(Timestamp.from(Instant.now())));
values.put("message", e.getMessage());
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(values.toString());
} catch (JSONException | IOException f) {
f.printStackTrace();
}
})
.and()
.addFilterBefore(googleOAuth2Filter, BasicAuthenticationFilter.class);
// @formatter:on
其他:
googleOAuth2Filter
匹配“ / oauth2 / token”,其他所有使用@RequestMapping
调用的东西
谢谢