Изменение пути контекста сервлета в JHipster, автоматически регистрируется как анонимный пользователь - PullRequest
0 голосов
/ 15 сентября 2018

В настоящее время JHipster создает контроллеры с путем /api на каждом контроллере.Я хочу сделать этот путь как /xyz/api (общий) для каждого контроллера, поэтому я удалил /api с каждого контроллера и добавил servletContext в application.yml.Ниже приведен код для него:

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 вызывается при загрузке приложения и получает информацию об анонимном пользователе.До этих изменений /account показывал 401 not authorized ошибку.

Что мне здесь не хватает?Почему это логин как аноним?

Заранее спасибо.

1 Ответ

0 голосов
/ 15 сентября 2018

Ваша SecurityConfiguration не должна включать контекстный путь в сопоставителях путей.

Я бы не рекомендовал вносимые вами изменения, я бы посоветовал установить контекстный путь без /api. При том способе, которым вы это делаете, пользовательский интерфейс также будет обслуживаться под /api (что, вероятно, приведет к тому, что защита /** будет работать не так, как ожидалось).

Эти изменения также будут приходиться при каждом обновлении JHipster.

...