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

spring-security重定向404错误

步博涉
2023-03-14

我将spring boot security用作restful服务的ACL。安全适配器如下所示

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableRedisHttpSession
@Order(2)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Autowired
    private MyUserDetailsService userDetailsService;


    @Bean
    public HttpSessionStrategy httpSessionStrategy() {
        return new HeaderHttpSessionStrategy();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .httpBasic()
                .and().csrf().disable()
                .authorizeRequests()
                .anyRequest().authenticated()
                .and().userDetailsService(userDetailsService);
    }
}

userdetailservice的快照

public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        Yuangong yuangong = yuangongService.getYuangongByNo(username).getData();

        List<SimpleGrantedAuthority> grantedAuthorities = new ArrayList<SimpleGrantedAuthority>();

        grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_ALL"));

        return new User(yuangong.getNo(), yuangong.getPassword(), grantedAuthorities);
    }
@RestController
@RequestMapping(path = "/bumen")
public class BumenEndpoint {
//    @PermitAll
        @PreAuthorize("hasRole('ROLE_ALL')")
        @RequestMapping(path = "/getBumenTreeList", method = RequestMethod.GET )
        public HttpResult<List<Map<String, Object>>> getBumenTreeData(Principal principal) {
            System.out.println(principal.getName());
            return new HttpResult(bumenService.getBumenTreeList());
}

我不确定是哪个部分导致了重定向

共有1个答案

胡飞鹏
2023-03-14

问题是由注释引起的。我已经根据这个Spring-MVC问题使用@controller on controller实现接口来修复它

 类似资料:
  • 问题内容: 我试图将用户重定向到他们单击登录链接的页面。(对于未经身份验证的用户,页面是只读的;对于已登录的用户,页面是可写的。)如何将用户重定向回他们登录后的来源? 我发送到用户登录页面此链接:。登录后,我希望用户将被重定向到页面。但是,它们总是被重定向到页面。 这是我正在使用的配置: 看来并没有像预期的那样得到重视。我正在使用Spring Security 3.1.4 问题答案: 使用以下规则

  • 我试图将用户重定向回他们单击登录链接的页面。(对于未经身份验证的用户,页面是只读的,但对于登录的用户,页面是可写的。)在用户登录后,如何将其重定向回其来源? 我正在向用户发送带有以下链接的登录页面:。登录后,我希望用户被重定向到页面。但是,他们总是被重定向到页面。 这是我正在使用的配置: 似乎没有像预期的那样提取targetUrlParameter。我正在使用Spring Security 3.1

  • 问题内容: 我试图将自定义中间件注入OWIN管道,该中间件包装来自MS 的可用中间件,以便在AngularJS中支持HTML 5模式。我一直在遵循此指南:http : //geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in- asp.net-vnext.aspx 从我可以收集到的信息来看,中间件将请求传

  • 我正在尝试使用Resteasy和Spring构建一个REST服务器/提供程序,并希望使用OAuth 2保护一些API。据我了解,我应该让 API 公开一个 URI 来生成 OAuth 令牌(例如 /oauth/token),然后使用它来访问安全部分。 下面是我使用 Spring Security 及其 OAuth2 支持的代码,我尝试在保护 /ws/v1/oauth/** 的同时公开单个 /oau

  • 在我的Spring Boot应用程序中,我需要实现以下场景: 匿名用户访问以下页面:此用户想询问有关此产品的问题。它可以在另一个页面上完成,地址如下:。用户按并显示登录/注册弹出窗口。成功登录后,用户应自动重定向到(但目前使用默认的Spring Security实现)用户正在重定向回页面发起者) 如何正确使用Spring Boot/Spring Security实现/配置这种重定向? 已更新 这是

  • 我为重定向创建了一个简单的@Controller: 描述符是: MVC-配置在spring-mvc.xml是: webapp结构见附件: 当我运行tomcat时,它会在url上重定向我:http://localhost:8080/test/access_denied. 但是有404错误。