当前,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
错误。
我在这里想念什么?为什么要以匿名用户身份登录?
谢谢。
答案 0 :(得分:3)
您的SecurityConfiguration不得在路径匹配器中包含上下文路径。
我不建议您进行更改,我建议您设置不带/api
的上下文路径。按照您的操作方式,该用户界面也将在/api
下提供服务(这可能会使保护/**
不能按预期工作)。
每次升级JHipster时,您还必须进行这些更改。