2013-01-29 2 views
2

Я пытаюсь разработать веб-сервисы для приложений, которые обеспечены Spring Security. Все работает отлично, за исключением одного: мой веб-сервис должен быть незащищенным, а wsdl должен обслуживаться без аутентификации/авторизации. Поэтому я добавляю соответствующий шаблон перехвата-url. Однако я не могу попасть на страницу wsdl. Я перенаправляюсь на страницу входа. Пройдя хороший логин/пароль, я могу добраться до wsdl, но без них я не могу. Я пробовал много паттернов, и все провалилось. Может быть, некоторые советы :)?Веб-сервис JAX-WS и весенняя безопасность

код

My Spring Security (с текущим перехватом-URL):

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

    <http pattern="/resources/*" security="none" /> 

    <http auto-config="true" use-expressions="true"> 
     <intercept-url pattern="/auth/login" access="permitAll" /> 
     <intercept-url pattern="/auth/logout" access="permitAll" /> 
     <intercept-url pattern="/auth/denied" access="permitAll" /> 
     <intercept-url pattern="/**SampleInputImpl?wsdl**" access="permitAll" /> 
     <intercept-url pattern="/user" access="hasRole('ROLE_USER')" /> 
     <intercept-url pattern="/admin" access="hasRole('ROLE_ADMIN')" /> 
     <intercept-url pattern="/*" access="isAuthenticated()" /> 

     <form-login login-page="/auth/login" authentication-failure-url="/auth/login?error=true" 
      default-target-url="/" /> 

     <access-denied-handler error-page="/auth/denied" /> 

     <logout invalidate-session="true" logout-success-url="/auth/login?logout=true" /> 



    </http> 

    <authentication-manager> 
     <authentication-provider user-service-ref="userDetailsService"> 
      <password-encoder hash="md5" /> 
     </authentication-provider> 
    </authentication-manager> 
</beans:beans> 

ответ

3

Ant модель в перехватываюте-URL не использует строку запроса, так что добавление WSDL, вероятно, в результате чего Spring Security не совпадать с вашим? WSDL. Я предлагаю попробовать <intercept-url pattern="/**/SampleInputImpl" access="permitAll" />.

Если это не работает, предоставьте URL-адрес, который вы хотите публиковать, и включите ведение журнала отладки и отправку журналов.

+0

Точно, это была проблема! Большое спасибо за помощь :) – PastorPL

Смежные вопросы