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

如何在Springboot和Spring Security中验证成功后对Rest API调用进行授权

李胡媚
2023-03-14
@Configuration
@EnableWebSecurity
public class ApplicationSecurity extends WebSecurityConfigurerAdapter {


    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http
        .csrf().disable()
        .authorizeRequests()
        .antMatchers("/login").permitAll()
        .anyRequest().authenticated()        
        .and().sessionManagement()
        .sessionCreationPolicy(SessionCreationPolicy.STATELESS);

    }
...
...
}

Org.SpringFramework.Security.Access.AccessDenieDexception:在org.SpringFramework.Security.Access.Vote.AfirmativeBased.Decide(AfirmativeBased.java:84)~[Spring-Security-Core-5.0.8.release]在org.SpringFramework.Security.Access.Intercept.AbstractSecurityInterceptor.BeforeInvocation(

我希望我的请求/admin/getCutoffDays能够在上一个登录请求中对数据进行身份验证时检索数据。

下面是我的控制器。

@RequestMapping("/admin")
@RestController
public class AdminController {
    @PreAuthorize("hasAuthority('ADMIN')")
    @GetMapping("/getCutOffDays")
    public long getCutOffDays() {
        return adminService.getSequenceId(CUT_OFF_DAYS);
    }
}

谁能帮我弄清楚我在这里错过了什么。

共有1个答案

萧宏远
2023-03-14

为了正确回答你的问题,我需要从你那边得到一些更多的投入。我试着通过做一些假设来回答它。

我假设您正在验证您的应用程序,然后在之后进行REST调用。首先(正如在答案中已经提到的),您有一个无状态会话策略。这意味着会话将不能用于后续的Http请求。

您可以通过以下方式处理:

    null
 类似资料:
  • 我开发了夸库斯应用程序。我正在尝试通过LDAP服务器对Rest调用的endpoint进行身份验证。要求是,如果用户想要访问endpoint之前,它通过Active Directory对用户所属的组织进行身份验证。如果他属于并获得成功,那么它应该为用户授权。 有谁能帮上忙吗?Quarkus在Java的应用如何进行认证。 我已经介绍了https://quarkus.io/guides/security

  • 我有我的web.xml文件,其中包含对REST API的限制,使用url ,如下所示: 从angular开始,我在授权http报头中发送承载令牌: 火狐中的请求标头: 问题是,当我用java打印请求头时,我找不到angular发送的授权头: 我想实现的是,我想拦截每一个请求,并使用某种过滤器使用授权头和令牌来识别用户。 这里有两个问题: < li >请求标头不包含< code >授权标头 < li

  • 我是全新的RestTemboard和基本上在REST API也。我想通过Jira REST API检索我的应用程序中的一些数据,但取回401未经授权。在jira rest api留档上找到并发表文章,但不知道如何将其重写为java,因为示例使用curl的命令行方式。我将感谢任何建议或建议如何重写: 进入java使用SpringRest模板。其中ZnJlZDpmcmVk是用户名:密码的Bas64编码

  • 我正在尝试使用Spring Security UserDetailService身份验证使用电子邮件而不是用户名登录,但我无法登录并获取 org.springframework.security.authentication.内部身份验证服务异常。 调试代码时,调试器不会跟踪 用户user=userDao。findByUserName(用户电子邮件);来自UserServiceImpl。java和

  • 我有一个ASP。NET MVC Web应用程序在Azure应用程序服务中作为Web应用程序运行。此web应用程序通过HttpClient从控制器调用Azure函数。使用Azure Active Directory在web应用中配置身份验证/授权。我需要在调用Azure函数时对用户进行身份验证,以便我可以访问用户声明。我还试图在Azure功能本身中配置身份验证,但每当我从web应用调用该功能时,这都