У меня Zuul Proxy в качестве приложения шлюза, запущенного в 8080 году, и Project Application, запущенного в качестве микросервиса в 8090. Я пытаюсь создать проект через Rest Controller, но когда я пытаюсь получить доступ к URL-адресу, у меня возникает проблема отказа в доступеи получая ответ как 401.
Project Micro-Service
Project Application
@EnableGlobalMethodSecurity(securedEnabled = true)
@EnableDiscoveryClient
@SpringBootApplication(scanBasePackages = "packagename")
public class ProjectApplication {
public static void main(String[] args) {
SpringApplication.run(ProjectApplication.class, args);
}
}
Если я комментирую аннотацию GlobalSecurity, она работает отлично.Но проверка полномочий не происходит.
ProjectController
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping(value = ApplicationConstant.API_PATH_PROJECT)
public class ProjectController {
private static final Logger logger = LoggerFactory.getLogger(ProjectController.class);
@Autowired
ProjectService projectService;
@Secured({ RoleConstant.ROLE_ADMIN_PROJECT})
@Transactional(rollbackFor = { Exception.class })
@RequestMapping(value = ApplicationConstant.API_PATH_CREATE, method = RequestMethod.POST)
public ResponseEntity<?> create(@ModelAttribute ProjectRequest projectRequest, HttpServletRequest request)
throws ApiException, IOException, ParseException {
....
}
}
Свойства шлюза / Zuul
server.port=8080
eureka.client.enabled=true
eureka.client.eureka-server-port=8761
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true
eureka.instance.prefer-ip-address=true
#zuul.ignored-headers=Access-Control-Allow-Credentials, Access-Control-Allow-Origin
zuul.sensitive-headers=Cookie,Set-Cookie,Authorization
Свойство Discovery Microservice
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/XXXXXXX
spring.datasource.username=root
spring.datasource.password=XXXXXXXXX
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
#spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
server.port = 8094
eureka.client.eureka-server-port=8761
eureka.client.serviceUrl.defaultZone = http://discUser:discPassword@localhost:8761/eureka
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true
eureka.instance.prefer-ip-address=true