Ответ 1
В spring безопасности 3.1.x использование фильтров = "none" устарело. Вместо этого вы используете несколько тегов <http>
:
<http pattern="/nonsecure/**" security="none"/>
У меня есть следующее определение...
<bean id="fsi" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="httpRequestAccessDecisionManager"/>
<property name="objectDefinitionSource">
<sec:filter-invocation-definition-source >
<sec:intercept-url pattern="/secure/css/**" access="ROLE_TIER0"/>
<sec:intercept-url pattern="/secure/images/**" access="ROLE_TIER0"/>
<sec:intercept-url pattern="/**" access="ROLE_TIER0"/>
</sec:filter-invocation-definition-source>
</property>
</bean>
Я хотел бы иметь ресурсы на этом URL-адресе...
"/небезопасные/**"
Открыть для всех вызовов, т.е. нет безопасности.
Я пробовал добавить...
<sec:intercept-url pattern="/nonsecure/**" access="permitAll" />
Но это приводит к тому, что Websphere выдает ошибку о
Unsupported configuration attributes: [permitAll]
Может ли кто-нибудь сказать мне, как исключить этот URL из безопасности?
В spring безопасности 3.1.x использование фильтров = "none" устарело. Вместо этого вы используете несколько тегов <http>
:
<http pattern="/nonsecure/**" security="none"/>
Я думаю, вам нужно добавить тэг use-expressions
в конфигурацию http
в xml безопасности, например:
<http auto-config="true" use-expressions="true">
...
...
</http>
Изменить: Ну, я не знаю, какую версию безопасности spring вы используете. Я знаю, что это работает в версии 3.0, но для более старых версий я не уверен.
<security:http auto-config='true'>
<security:intercept-url pattern="/getfeed/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/**" access="ROLE_USER, ROLE_ADMIN" />
<security:http-basic />
</security:http>
access = " IS_AUTHENTICATED_ANONYMOUSLY" Это решение. Я нашел его по следующей ссылке http://syntx.io/adding-http-basic-auth-to-restful-services-in-java-and-spring/
Перехватываются сверху вниз. Если вы напишете это /** до/getIntelFeed/**, то все службы будут проходить через /**, и безопасность будет применяться ко всем службам. В этом случае /getIntelFeed/ ** будет неэффективным.
Try:
<sec:intercept-url pattern="/nonsecure/**" filters="none" />
Чтобы иметь возможность использовать выражения, такие как [allowAll], вы должны добавить WebExpressionVoter к вашему AccessDecisionManager
Вы не укажете остальную часть своей конфигурации, и поскольку похоже, что у вас есть явная конфигурация bean, нам сложно точно угадать, как настроены настройки. Я скажу, что некоторая комбинация вышеуказанных ответов верна.
Удачи!