Как исправить ошибку «403 - Запрещено - Доступ запрещен» при запросе ресурсов в Spring Cloud Microservice? - PullRequest
1 голос
/ 04 июня 2019

Я обеспечил свою авторизацию с помощью jwt, и когда я запрашиваю ресурс с заголовком jwt в заголовке, все работает нормально. После того, как я внедрил Eureka Service Discovery и Zuul Gateway и попытался запросить защищенный ресурс, я получил следующий ответ:

{
"timestamp": "2019-06-04T15:28:31.690+0000",
"status": 403,
"error": "Forbidden",
"message": "Access Denied",
"path": "/user"
}

Так что это сообщение происходит только когда я отправляю запрос через шлюз. Также можно получить незащищенные ресурсы через проход, есть проблема только с защищенными ресурсами.

Конфигурация безопасности в службе аутентификации:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .csrf()
            .disable()
            .cors()
            .and()
            .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
            .authorizeRequests()
            .antMatchers("/signup").permitAll()
            .antMatchers("/login").permitAll()
            .antMatchers("/confirm-account").permitAll()
            .antMatchers("/resendMail").permitAll()
            .antMatchers("/validate/user").permitAll()
            .antMatchers("/reset/password").permitAll()
            .antMatchers("/reset-password").permitAll()
            .antMatchers("/new/password").permitAll()
            .anyRequest().authenticated()
            .and()
            .apply(new JWTConfigurer(this.tokenProvider));
}


application.properties in auth-service

spring.datasource.url=jdbc:postgresql://localhost:5432/gamificationdb
spring.datasource.username = postgres
spring.datasource.password = root
spring.jpa.properties.hibernate.dialect =       org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
spring.main.allow-bean-definition-overriding=true
eureka.client.serviceUrl.defaultZone= http://localhost:8080/eureka/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...