Конфигурация Spring-security.xml выдает ошибку - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь настроить Spring-Security для моего приложения. Но он выдает ошибки, когда я пытаюсь настроить его с oauth

Это моя весна security.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:sec="http://www.springframework.org/schema/security"
   xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd
    http://www.springframework.org/schema/security/oauth2 http://www.springframework.org/schema/security/spring-security-oauth2.xsd">

<sec:http create-session="never" entry-point-ref="oauthAuthenticationEntryPoint">

    <sec:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />

    <sec:intercept-url pattern="/phone-number-verification/token" access="ROLE_USER" />
    <sec:intercept-url pattern="/phone-number-verification/verify-token" access="ROLE_USER" />

    <sec:anonymous enabled="true"/>
    <sec:access-denied-handler ref="oauthAccessDeniedHandler" />
</sec:http>

<bean id="oauthAuthenticationEntryPoint" class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
    <property name="realmName" value="blibli-api/user" />
</bean>

<bean id="clientAuthenticationEntryPoint" class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
    <property name="realmName" value="blibli-api/client" />
    <property name="typeName" value="Basic" />
</bean>

<bean id="oauthAccessDeniedHandler" class="org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler" />

<bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased">
    <constructor-arg>
        <list>
            <bean class="org.springframework.security.oauth2.provider.vote.ScopeVoter" />
            <bean class="org.springframework.security.access.vote.RoleVoter" />
            <bean class="org.springframework.security.access.vote.AuthenticatedVoter" />
        </list>
    </constructor-arg>
</bean>
</beans>

Я получаю ошибку

Ошибка при создании bean-компонента с именем org.springframework.security.filterChains: невозможно разрешить ссылку на bean-компонент org.springframework.security.web.DefaultSecurityFilterChain # 0 'при установке свойства bean sourceList с ключом [0]; вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем org.springframework.security.web.DefaultSecurityFilterChain # 0 ': невозможно создать внутренний бин (внутренний бин) # 5ee62c84' типа [org.springfra .security.web.servletapi.SecurityContextHolderAwareRequestFilter] при установке аргумента конструктора с ключом [5]; вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем '(внутренний бин) # 5ee62c84': невозможно разрешить ссылку на бин 'org.springframework.security.authentication.ProviderManager # 0' при установке свойства бина ' AuthenticationManager '; вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'org.springframework.security.authentication.ProviderManager # 0': невозможно разрешить ссылку на бин 'org.springframework.security.config.authentication.Aan 0 'при установке аргумента конструктора; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean # 0': FactoryBean вызвала исключение при создании объекта; вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: не определен bean-компонент с именем org.springframework.security.authenticationManager: вы забыли добавить глобальный элемент в вашу конфигурацию (с дочерними элементами)? В качестве альтернативы вы можете использовать атрибут authentication-manager-ref для ваших элементов.

Я попытался добавить тег для диспетчера аутентификации, но это не сработало.

Я хочу развернуть его на tomcat, но постоянно получаю ту же ошибку

1 Ответ

0 голосов
/ 29 апреля 2019

Нет bean-компонента с именем org.springframework.security.authenticationManager. определено: вы забыли добавить элемент gobal в вашу конфигурацию (с дочерними элементами)? В качестве альтернативы вы можете использовать Атрибут authentication-manager-ref для вашего и элементов.

Вот что должны сказать логи. Вам необходимо добавить конфигурацию менеджера аутентификации.

<sec:authentication-manager id="authenticationManager">
    <sec:authentication-provider user-service-ref="userDetailsService"/>
</sec:authentication-manager>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...