更改JHipster中的servlet上下文路径,以匿名用户身份自动登录

时间:2018-09-15 17:39:58

标签: spring-boot spring-security jhipster

当前,JHipster在每个控制器上使用if (this.imageUpload.controls.imageInput.value==null) { this.imageUpload.controls.imageInput.reset(files[0] ); } 路径创建控制器。我想将此路径设置为每个控制器的readfiles(常见),因此我从每个控制器中删除了/api,并在application.yml中添加了/xyz/api。下面是它的代码:

/api

我还如下更改了安全配置:

servletContext

现在,当我运行此应用程序时,它将自动以匿名用户身份登录。我标记为server: servlet: session: cookie: http-only: true contextPath: /xyz/api 服务是在应用程序加载时被调用的,它正在获取匿名用户的详细信息。在进行这些更改之前, @Override protected void configure(final HttpSecurity http) throws Exception { http.addFilterBefore(this.corsFilter, UsernamePasswordAuthenticationFilter.class).exceptionHandling() .authenticationEntryPoint(this.problemSupport).accessDeniedHandler(this.problemSupport).and().csrf() .disable().headers().frameOptions().disable().and().sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().authorizeRequests() .antMatchers("/xyz/api/register").permitAll().antMatchers("/xyz/api/activate").permitAll() .antMatchers("/xyz/api/authenticate").permitAll() .antMatchers("/xyz/api/account/reset-password/init").permitAll() .antMatchers("/xyz/api/account/reset-password/finish").permitAll().antMatchers("/xyz/api/**") .authenticated().antMatchers("/xyz/api/management/health").permitAll() .antMatchers("/xyz/api/management/info").permitAll().antMatchers("/xyz/api/management/**") .hasAuthority(AuthoritiesConstants.ADMIN).antMatchers("/xyz/api/v2/api-docs/**").permitAll() .antMatchers("/xyz/api/swagger-resources/configuration/ui").permitAll() .antMatchers("/xyz/api/swagger-ui/index.html").hasAuthority(AuthoritiesConstants.ADMIN) .and() .apply(this.securityConfigurerAdapter()); } 显示/account错误。

我在这里想念什么?为什么要以匿名用户身份登录?

谢谢。

1 个答案:

答案 0 :(得分:3)

您的SecurityConfiguration不得在路径匹配器中包含上下文路径。

我不建议您进行更改,我建议您设置不带/api的上下文路径。按照您的操作方式,该用户界面也将在/api下提供服务(这可能会使保护/**不能按预期工作)。

每次升级JHipster时,您还必须进行这些更改。