0

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

路线

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

添加了默认的安全 jar

spring-boot-starter-security

应用程序属性

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;
    }

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

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

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

怎么了 ?

4

1 回答 1

0

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

不幸的是,没有解决这个问题。但是有一个解决方法。

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

例子

from("restlet:/error?restletMethods=GET").transform(simple("unauthorized"));
于 2018-10-23T06:34:37.127 回答