当前位置: 首页 > 知识库问答 >
问题:

Spring安全许可证无效

轩辕弘雅
2023-03-14

我正在使用Spring Security。我有一个控制器,其中某些方法必须能够被任何用户访问,无论他是否经过身份验证,某些方法必须能够仅访问使用JWT令牌进行身份验证的用户。我已经配置了一些带有acces="permitAll()"的模式,但似乎不起作用。如果我尝试访问localhost:8080/name-of-the-app/services/public/whatever我得到401,我在我的MobileJWTAuthenticationEntryPoint.commence方法中返回。你能帮我吗?

这是我的背景。xml:

<security:global-method-security pre-post-annotations="enabled"/>

<security:http entry-point-ref="mobileJWTAuthenticationEntryPoint"
               authentication-manager-ref="mobileJWTAuthenticationManager"
               create-session="stateless"
               use-expressions="true">
    <security:custom-filter ref="mobileJWTAuthenticationFilter" position="FORM_LOGIN_FILTER" />
    <security:intercept-url pattern="/services/public/**" access="permitAll()"/>
    <security:intercept-url pattern="/services/restAPI/**" access="isAuthenticated()" />
</security:http>

<bean id="mobileJWTAuthenticationEntryPoint" class="co.amleto.server.services.security.MobileJWTAuthenticationEntryPoint"/>

<bean id="mobileJWTAuthenticationFilter" class="co.amleto.server.services.security.MobileJWTAuthenticationFilter" >
    <constructor-arg name="authenticationManager" ref="mobileJWTAuthenticationManager"/>
    <constructor-arg name="entryPoint" ref="mobileJWTAuthenticationEntryPoint"/>
</bean>

<bean id="mobileJWTAuthenticationProvider" class="co.amleto.server.services.security.MobileJWTAuthenticationProvider"/>

<security:authentication-manager alias="mobileJWTAuthenticationManager">
    <security:authentication-provider ref="mobileJWTAuthenticationProvider"/>
</security:authentication-manager>

编辑:我的整个代码都是受这个启发的:http://massimilianosciacco.com/spring-security-jwt-authentication.在身份验证过滤器中,我已经用返回切换了抛出。现在无论我点击哪个网址,我都会得到空白页面。

共有1个答案

武骁
2023-03-14

问题已解决。正如我在编辑中提到的,我的代码基于OP中添加的链接的解决方案。自定义过滤器有错误的代码:在任何情况下都会引发异常。解决方案是调用chain。doFilter(请求、响应)和doFilter方法的返回,以允许匿名url调用。

 类似资料:
  • 我试着给多个URL全部许可,但我得到了403。当我禁用csrf时,所有请求都在没有身份验证的情况下工作。请在下面找到我的安全配置。 请指正我遗漏的地方。谢谢你...

  • 我的Spring Boot执行器healthCheck被阻止,因为丢失了一个(pre_authenticated)令牌。 有很多答案可用,但这是一个问题有干扰预认证的安全性。据我查,这不是复制品。 如何允许在预先验证的安全环境中进行健康检查?

  • Flask 由一个三条款的 BSD 许可证许可。基本上可以认为:你可以用它做任何事情, 只要版权在 Flask 的支持范围内,条款不能被修改,并且提供免责声明。 此外,你不可以在没有书面同意的情况下使用作者的名字来推广衍生作品。 完整的许可证可以在下面找到( Flask License )。对于文档和艺术作品, 使用不同的许可证。 作者 Flask is written and maintaine

  • Akka License This software is licensed under the Apache 2 license, quoted below. Copyright 2009-2014 Typesafe Inc. <http://www.typesafe.com> Licensed under the Apache License, Version 2.0 (the "Lice

  • 我的应用程序中有服务,需要在设备OPPO的后台运行。我在某个地方读到,我们需要在应用程序的设置中启用自动启动以保持服务运行,但我的权限有问题。 java.lang.安全异常:权限拒绝:启动意图{cmp=com.coloros.safecenter/.startupapp.StartupAppListActivity}从ProcessRecords{904a19d 12604:elite.drive

  • 出现“许可证协议”,点击我接受: