首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在spring安全中禁用/oauth/token的GET option端点并仅保留POST选项?

在Spring Security中禁用/oauth/token的GET和OPTIONS端点并仅保留POST选项,可以通过配置HttpSecurity来实现。以下是一种可能的解决方案:

代码语言:txt
复制
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers(HttpMethod.GET, "/oauth/token").denyAll() // 禁用GET请求
                .antMatchers(HttpMethod.OPTIONS, "/oauth/token").denyAll() // 禁用OPTIONS请求
                .antMatchers(HttpMethod.POST, "/oauth/token").permitAll() // 允许POST请求
                .anyRequest().authenticated() // 其他请求需要认证
                .and()
            .csrf().disable(); // 禁用CSRF保护,方便测试
    }
}

上述配置中,使用authorizeRequests()方法来配置请求的访问权限。通过antMatchers()方法指定匹配的URL和请求方法,然后使用denyAll()方法禁用GET和OPTIONS请求,使用permitAll()方法允许POST请求。最后,使用authenticated()方法指定其他请求需要进行认证。

需要注意的是,上述配置中禁用了CSRF保护,这在实际生产环境中是不推荐的。在实际应用中,应该启用CSRF保护来防止跨站请求伪造攻击。

关于Spring Security的更多信息和配置选项,可以参考腾讯云的产品文档:Spring Security

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Security OAuth 2开发者指南译

自定义UI 大多数授权服务器端点主要由机器使用,但是有一些资源需要一个UI,而这些资源是GET /oauth/confirm_access和HTML响应/oauth/error。...您也可能希望使用Spring Security requiresChannel()限制来保护端点。对于/authorize端点,由您来做,作为您正常应用程序安全一部分。...在这两种情况下,安全通道设置是可选,但是如果Spring Security在不安全通道上检测到请求,则会导致Spring Security重定向到安全通道。...我们配置了/oauth/check_token端点和/oauth/token_key端点(所以信任资源可以获得JWT验证公钥)。...该id由客户端用于查找资源; 它在OAuth协议从未使用过。它也被用作beanid。 clientId:OAuth客户端ID。这是OAuth提供商识别您客户端ID。

2.1K10

浏览器存储访问令牌最佳实践

在审查威胁之后,它描述了一种解决方案,以提供最佳浏览器安全选项,用于必须与OAuth保护API集成JavaScript应用程序。...例如,攻击者可以在网站嵌入精心设计图像源字符串,以触发浏览器运行GET请求,或者在恶意网站上添加表单,以触发POST请求。...因此,攻击者可以默默地代表用户执行请求,调用用户可以调用任何端点。然而,攻击者无法读取响应,所以他们通常以一次性状态更改请求为目标,更新用户密码。...因此,在使用localStorage时,请考虑终端安全性。考虑防止浏览器之外攻击向量,恶意软件、被盗设备或磁盘。 根据上述讨论,请遵循以下建议: 不要在本地存储存储敏感数据,令牌。...OAuth代理解密cookie并将令牌添加到上游API。cookie属性确保浏览器将cookie添加到HTTPS请求,以确保它们在传输过程安全。由于令牌是加密,它们在休息时也是安全

23910
  • Spring Security OAuth 2开发者指南

    自定义UI 大多数授权服务器端点主要由机器使用,但是有一些资源需要一个UI,那些是GET /oauth/confirm_access和HTML响应/oauth/error。...您也可能希望使用Spring Security requiresChannel()约束保护端点。对于/authorize端点,由您来做,作为正常应用程序安全一部分。...在这两种情况下,安全通道设置是可选,但是如果Spring Security在不安全通道上检测到请求,则会导致Spring Security重定向到安全通道。...该白色标签错误端点提供了HTML响应,但用户可能需要提供自定义实现(只需添加一个@Controller带@RequestMapping("/oauth/error"))。...我们配置了/oauth/check_token端点和/oauth/token_key端点(所以信任资源可以获取JWT验证公钥)。

    1.9K20

    Spring Cloud Security OAuth2 实现密码模式

    Spring Cloud Security OAuth2是Spring Cloud提供基于OAuth2协议安全授权框架,它可以让我们轻松地实现OAuth2各种授权流程。...添加Spring Cloud Security OAuth2依赖 在项目中添加Spring Cloud Security OAuth2依赖,以支持OAuth2协议安全授权功能。...我们配置了使用数据库存储OAuth2客户端信息,配置了认证服务器端点,同时还配置了允许表单认证。...我们使用了Spring Security提供JdbcAuthentication,将用户信息存储在MySQL数据库。...同时,我们还配置了"/oauth/token"接口访问权限,禁用了跨站请求伪造防护。 三、测试授权流程 在完成以上配置后,我们就可以使用密码模式进行授权了。

    1.2K20

    spring authorization server oidc客户端发起登出源码分析

    版本 spring-security-oauth2-authorization-server:1.2.1 场景 spring authorization server OIDC协议,支持处理依赖方(客户端...)发起登出请求,注销授权服务器端会话 流程: 客户端登出成功->跳转到授权服务端OIDC登出端点->授权服务端注销会话->跳转回客户端(可选) 源码 OIDC 登出端点配置器 org.springframework.security.oauth2...final class OidcLogoutEndpointFilter extends OncePerRequestFilter { // 默认端点地址,用于处理OIDC依赖方发起登出请求...); } // 如果请求携带了客户端ID,校验是否与ID TOKEN对应客户端注册信息ID一致 if (StringUtils.hasText(oidcLogoutAuthentication.getClientId..., OAuth2ParameterNames.CLIENT_ID); } // 如果请求携带了登出后跳转地址,校验是否包含在客户端注册信息登出后跳转地址清单 if (StringUtils.hasText

    14600

    Spring Security OAuth2.0实现

    授权服务(Authorization Server):应包含对接入端以及登入用户合法性进行验证颁发token等功能,对令牌请求端点Spring MVC 控制器进行实现,下面是配置一个认证服务必须要实现.../oauth/check_token:用于资源服务访问令牌解析端点。 /oauth/token_key:提供公有密匙端点,如果你使用JWT令牌的话。....allowedTokenEndpointRequestMethods(HttpMethod.POST); //允许post提交 } 配置令牌端点安全约束 AuthorizationServerSecurityConfigurer...使用授权服务/oauth/check_token端点需要在授权服务将这个端点暴露出去,以便资源服务可以进行访问。...使用令牌请求资源: 令牌申请成功后,还可以使用/uaa/oauth/check_token校验令牌有效性,查询令牌内容: 数据库动态配置 目前为止客户端信息和授权码仍然存储在内存,生产环境通常会存储在数据库

    2.8K30

    Spring Security 6.x 微信公众平台OAuth2授权实战

    图片 上一篇介绍了OAuth2协议基本原理,以及Spring Security框架自带OAuth2客户端GitHub实现细节,本篇以微信公众号网页授权登录为目的,介绍如何在原框架基础上定制开发OAuth2...1.2 服务端重定向 服务端在收到请求后,就弹出用户授权页面,用户同意授权后(使用静默授权则直接通过),又会重定向到redirect_uri地址,携带code和state参数,例如redirect_uri...标准协议,即上一步获取code参数 grant_type:必填参数,同OAuth2标准协议,固定值“authorization_code” 这个端点看似是用GET请求,但实测用POST请求也是可以获取到...支持application/json 根据OAuth2标准协议,返回数据字段缺少了一个必须字段:token_type,需要自动填充进去,否则反序列化时就会报错 3....在获取用户信息时,包括 需要在请求地址拼接access_token,openid这两个参数,指定为GET请求 同上,需要兼容text/plainMediaType 二、开发实战 下面我们逐步介绍如何优雅地实现这些定制需求

    30310

    Spring Security SSO 授权认证(OAuth2)

    Spring Security SSO 授权认证(OAuth2) @TOC 手机用户请横屏获取最佳阅读体验,REFERENCES是本文参考链接,如需要链接和更多资源,可以关注其他博客发布地址。...我们将使用三个单独应用程序: 授权服务器 - 这是中央身份验证机制 两个客户端应用程序:使用SSO应用程序 非常简单地说,当用户试图访问客户端应用程序安全页面时,他们将被重定向到首先通过身份验证服务器进行身份验证...我们将使用OAuth2授权代码授权类型来驱动身份验证委派。...安全配置 首先,我们将通过application.properties禁用默认基本身份验证: server.port=8081 server.servlet.context-path=/auth 现在...,在我们示例,我们定义了授权服务器,但当然我们也可以使用其他第三方提供商,Facebook或GitHub。

    1.9K20

    微服务架构之Spring Boot(四十一)

    29.3.3授权服务器 目前,Spring安全性不支持实施OAuth 2.0授权服务器。但是,此功能可从Spring安全OAuth项目获得,该项目最终将完全被Spring安全性取 代。...在此之前,您可以使用 spring-security-oauth2-autoconfigure 模块轻松设置OAuth 2.0授权服务器; 请参阅其文档以获取说明 29.4执行器安全性 出于安全考虑,默认情况下禁用...这意味着当使用默认安全配置时,需要 POST (关闭和记录 器端点), PUT 或 DELETE 执行器端点将获得403禁止错误。...30.使用SQL数据库 在Spring框架提供用于使用 JdbcTemplate 完成“对象关系映射”技术,休眠使用SQL数据库,从直接JDBC访问广泛支持。...在这个例子,它通过 spring-boot-starter-data-jpa 传递。 如果由于某种原因,您确实为嵌入式数据库配置了连接URL,请注意确保禁用数据库自动关闭。

    1.4K20

    Spring底层原理高级进阶】【SpringCloud整合Spring Security OAuth2】深入了解 Spring Security OAuth2:底层解析+使用方法+实战

    它提供了一套易于使用和集成API,方便开发者在Spring应用程序实现OAuth2各种授权模式和流程。...} } 在上述代码,/authorize端点用于重定向用户到授权服务器登录页面。...令牌(Token):用于表示授权许可凭证,包括访问令牌、刷新令牌和身份令牌等。 令牌端点Token Endpoint):客户端与授权服务器交互以获取或刷新令牌API端点。...:令牌应由授权服务器和资源服务器持有,并且不应通过客户端或其他不受信任渠道传播。...客户端应采取适当安全措施,存储令牌时进行加密处理。 在Spring Cloud,可以使用Spring Security OAuth2来实现令牌保密性。

    1.9K11

    OAuth 详解 什么是OAuth 2.0 隐式流, 已经不推荐了吗?

    但是,标准 OAuth 授权代码流程要求向 OAuth 服务器令牌端点发出 POST 请求,该端点通常与应用程序位于不同域中。这意味着以前无法通过 JavaScript 使用此流程。...您仍然需要确保您拥有良好内容安全策略,了解您在应用程序中使用任何第三方库。 在 JavaScript 应用程序安全实施 OAuth 最佳方式是将令牌管理完全置于 JavaScript 之外。...如果您正在构建一个由动态服务器提供服务 JavaScript 应用程序,例如带有 Angular 前端 Spring Boot 后端,或带有 React 前端 ASP.NET 后端,那么您可以保留所有...从选项中选择单页应用程序,这将配置此应用程序以在令牌端点上启用 CORS 标头,并且不会创建客户端机密。 为您应用程序命名,然后您需要更改两个设置。...POST 请求解析 JSON 响应。

    27840

    Spring Boot 与 OAuth2

    现在我们可以切换到服务器端来实现这个端点。 添加一个Logout端点 Spring Security已经构建了一个支持 /logout端点,它将为我们做正确事情(清除会话使Cookie无效)。...POST方法请求,保护用户免受跨站点请求伪造(CSRF,发音为“sea surf”)攻击,它要求在请求包含一个令牌。...首先,我们可以注入一个 OAuth2ClientContext,使用它来构建一个身份验证过滤器,以添加到我们安全配置: SocialApplication @SpringBootApplication...事实上,在这个应用程序没有多少用户界面,但是我们仍然需要保护 /oauth/authorize端点确保带有“登录”按钮主页可见。...":"read write"} 客户端凭据令牌在某些情况下很有用(测试令牌端点是否正常工作),但为了利用服务器所有功能,我们希望能够为用户创建令牌。

    10.6K120

    基于Spring Cloud Oauth2 JWT搭建微服务安全认证中心

    理解Oauth 2.0 Oauth协议为用户资源授权提供了一个安全、开放而又建议标准。...oauth授权不会是第三方初级到用户账号信息(如用户名与密码),及第三方无需使用用户用户名与密码就可以申请获得该用户资源授权,因此oauth安全。...还有就是自己公司需要提供接口给别的公司使用,由于是外网环境,所以需要有一套安全机制保障,这个时候oauth2就可以作为一个方案 网上关于Oauth 2.0 概念挺多,建议大家去看下阮一峰文章,很好理解...[框架自带校验]/oauth/token端点允许所有客户端发送器请求而不会被Spring-security拦截 // 开启/oauth/token_key验证端口无权限访问...] 重点关注一下/oauth/token,它是获取tokenendpoint。

    15.6K73

    OAuth 2.0 授权认证详解

    OAuth出现就是为了解决访问资源安全性以及灵活性。...授权服务器 Authorization Server,授权服务器对资源所有者进行认证获取授权后,向客户端颁发访问令牌(Access Token) 在认证和授权过程涉及一些概念: 访问令牌(access...redirect_url,这个地址应该能够保证请求打到应用服务器对应接口,该接口可以由此拿到 code,附加相应参数请求授权服务器令牌端点,授权端点验证 code 和相关参数,验证通过则下发 access_token...授权服务器验证通过之后,生成 access_token选择性下发 refresh_tokenOAuth2.0 协议明确了 token 下发策略,对于生成策略没有做太多说明。...A步骤 ,客户端发出HTTP请求,包含以下参数: response_type:表示授权类型,此处值固定为”token”,必选项。 client_id:表示客户端ID,必选项

    1.8K40

    OAuth2.0 OpenID Connect 一

    如果没有安全外部身份验证和授权,您必须相信每个应用程序和每个开发人员不仅会考虑您最大利益和隐私,而且知道如何保护您身份愿意跟上安全最佳实践. 这是一个相当高要求,对吧?...通常,您通过使用 HTTP GET 访问端点来启动 OIDC 交互/authorization。许多查询参数指示您在验证后期望返回内容以及您将有权访问内容(授权)。...通常,您需要使用/tokenHTTP POST 访问端点以获取用于进一步交互令牌。 OIDC 还有一个/introspect用于验证令牌端点,一个/userinfo用于获取用户身份信息端点。...考虑因素包括应用程序类型(基于 Web 或本机移动应用程序)、您希望如何验证令牌(在应用程序或在后端)以及您希望如何访问其他身份信息(进行另一个 API 调用或拥有它直接编码成令牌)。...如果我能以某种方式获得“携带”你访问令牌,我就可以伪装成你。 这些令牌通常具有较短生命周期(由其到期决定)以提高安全性。

    43330
    领券