Spring Boot 2: исправление требуется для безопасности Spring с реализацией JWT с использованием только конфигурации xml - PullRequest
0 голосов
/ 23 апреля 2019

Я пробую Spring Security с реализацией JWT, используя только конфигурации XML, таким образом, избегая использования @EnableWebSecurity и, поскольку я хочу достичь реализации на основе REST без сохранения состояния, таким образом, используя JWT и разрешая только URL-адрес входа в систему и ограничивая все остальные URL-адресатолько для аутентифицированных пользователей.

Я использую смесь аннотаций, например @PreAuthorize и xml для достижения результатов.

Я посмотрел ответы на ошибку выше и в итоге обнаружил, что янужно сделать @EnableWebSecurity для моего класса websecurityconfig (которого у меня нет, так как это конфигурация на основе xml)

My applicationContext.xml также содержит конфигурации безопасности, и это как ниже, где "/ Login"это контроллер, который я выставил для авторизации:

<context:component-scan base-package="com.xyz.security.*"/>
<context:annotation-config/>

<mvc:cors>
<mvc:mapping path="/**"
    allowed-origins="http://localhost:3000"
    allowed-methods="GET, PUT, POST"
    allow-credentials="false"/>
</mvc:cors>

<security:global-method-security pre-post-annotations="enabled" />
<security:http use-expressions="true" entry-point-ref="customAuthenticationEntryPoint" auto-config="true">
 <security:csrf disabled="true"/>
    <security:intercept-url pattern="/Login/**" access="permitAll" />
    <security:intercept-url pattern="/**" access="isAuthenticated()" />
    <security:custom-filter before="FORM_LOGIN_FILTER" ref="jwtAuthenticationFilter"/>
</security:http>

<bean id="jwtAuthenticationFilter" class="com.xyz.jwt.JwtAuthenticationFilter">
    <property name="authenticationManager" ref="authenticationManager" />
    <property name="authenticationSuccessHandler" ref="jwtAuthenticationSuccessHandler" />
</bean>

<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider ref="jwtAuthenticationProvider" />
</security:authentication-manager>

Однако в моей реализации я получаю ошибку ниже

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.security.config.annotation.ObjectPostProcessor<java.lang.Object>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

Конечно, я также предоставилниже приведены файлы для полной реализации того же

AccessJwtToken.java, 
CustomAuthenticationEntryPoint.java, 
JwtAuthenticationFilter.java, 
JwtAuthenticationProvider.java, 
JwtAuthenticationSuccessHandler.java, 
JwtHeaderTokenExtractor.java, 
JwtToken.java, 
JwtTokenFactory.java, 
UserContext.java

PS: я ссылался на статью "http://www.svlada.com/jwt-token-authentication-with-spring-boot/", чтобы реализовать фильтры и т. д. для JWT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...