【问题标题】:Camel - Spring Boot Security - REST - 404 on sending wrong credentialsCamel - Spring Boot Security - REST - 发送错误凭据时出现 404
【发布时间】:2019-03-26 07:00:37
【问题描述】:

这真是一个奇怪的错误。我正在尝试在骆驼restlets端点上使用spring security

路线

from("restlet://test?restletMethod=GET").to("some endpoint");

添加了默认的安全 jar

spring-boot-starter-security

Application.properties

security.basic.enabled=true
security.user.name=user

上下文配置

    @Bean
    public ServletRegistrationBean servletRegistrationBean() {
        SpringServerServlet servlet = new SpringServerServlet();
        DispatcherServlet dispatcherServlet = new DispatcherServlet();
        ServletRegistrationBean registration = new ServletRegistrationBean( servlet , "/*");

        registration.setName("restlet");

        Map<String,String> params = new HashMap<>();
        params.put("org.restlet.component", "restletComponent");

        registration.addInitParameter( "org.restlet.component", "restletComponent" );

        return registration;
    }

当APP作为spring boot应用运行时,会生成一个默认密码。

Using default security password: f701928f-29c6-448f-9640-430cc5f215be

现在,如果我使用正确的凭据调用其余部分,则它可以正常工作。但是如果我用 wrong credentials 打电话,它会返回 404 not found

怎么了?

【问题讨论】:

  • 所以我有几个问题:1)您使用的是哪个版本的弹簧靴? 2)您的身份验证失败网址是如何配置的? 3)您是否配置了拒绝访问处理程序错误页面 403?如果没有,这将自动重定向到 404 错误。
  • 1) 1.5.7 2) 否 3) 否。但是我得到的例子是在没有配置任何东西的情况下工作。它清楚地抛出“需要完整身份验证”错误
  • 看起来我使用的配置导致了问题。更新问题。还是没有解决办法

标签: spring-boot spring-security apache-camel basic-authentication spring-security-rest


【解决方案1】:

问题在于 ServletRegistrationBean am Using ,它捕获 401 错误并将重定向发送到名为 /error 的页面。

很遗憾,没有解决此问题的方法。但是有一个解决方法。

有一个简单的rest api调用路径为'/error'并返回你想要的任何输出。

例子

from("restlet:/error?restletMethods=GET").transform(simple("unauthorized"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 2019-02-20
    • 1970-01-01
    • 2017-08-26
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多