java - 我应该允许在没有 token 还是有 token 的情况下访问公共(public) API

标签 java spring spring-security spring-security-oauth2

我正在使用 Spring security,一旦用户通过身份验证,我们就会使用 token 对用户进行身份验证和授权。我们的网站访问者也会使用一些 API。

我是否应该允许访问者通过提供公共(public) token 来访问这些 API(此公共(public) token 将通过点击特定 URL 来访问)

或者

我是否应该允许访问者在没有任何 token 的情况下访问 API?

最好的方法是什么?

最佳答案

如果您尝试提供公钥(或 token )来访问完全无用的非安全 API。只需尝试将它们从 Spring Security 中排除即可。

http.authorizeRequests().antMatchers("/publicApis/*").permitAll()

如果您更担心中间人等安全攻击,那么您可能需要考虑使用基于 API 签名机制(哈希/摘要)的机制来为请求创建签名,从而保护公共(public) API。这将避免请求篡改。

关于java - 我应该允许在没有 token 还是有 token 的情况下访问公共(public) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43280670/

相关文章:

java - 如何使用Spring Security自定义登录页面?

java - 检查数组是否为空时出现 NullPointerException

java - 在 NumPy 和 JPype 之间转换数组?

java - 测试中自发启动 Spring Boot 上下文

java - spring tx :advice and spring aop pointcut 之间的区别

java - 如何避免登录api中的大数据

java - RabbitMQ 玩 Java Akka

java - 带 Spring Boot 的 Jackson : control object substitution for specific method

java - Spring Data Mongo 返回列表而不是字符串

java - Spring Security + Google App Engine + UserService : What is the correct way to logout?