2

Does anyone know in Spring a way to implement a user-service or authentication provider that will accept any user when logging in?

This is further to my previous question: spring-ws get username & password

I have a basic security setup in my spring-ws project:

<security:http auto-config="true">
    <security:intercept-url pattern="/**" access="ROLE_USER" />
    <security:intercept-url pattern="/*.wsdl" access="ROLE_USER" />
    <security:http-basic/>
</security:http>

<security:authentication-manager erase-credentials="false">
    <security:authentication-provider user-service-ref="userService">
        <security:user-service>
            <security:user name="me" password="mypass"
                authorities="ROLE_USER" />
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>

I don't want to specify users in the user-service, I want a user with any details to have access, I simply want to make sure the user gives a username and password and to ensure that I can access this from the SecurityContextHolder.

Is it necessary to implement my own user-service or authentication-provider to do this and if so can anyone point in the direction of an example or provide me with one?

Thanks!

4

3 に答える 3

1

AuthenticationProvider独自のもの、つまりインターフェースの実装を提供する必要がありorg.springframework.security.authentication.AuthenticationProviderます。

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

<bean id="myProvider" class="MyProvider"/>

MyProviderその後、カスタムに委任しUserDetailsServiceて権限 (ロール) を設定するか、ROLE_USER直接設定することができます。

于 2013-01-23T15:59:29.870 に答える
0

次のことを行う必要があります。

インターセプト URL を構成して、任意のロール名にアクセスできるようにします。これを行うには、次のようにします。

<security:http auto-config="true">
     <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_REMEMBERED" />
     <security:intercept-url pattern="/*.wsdl" access="IS_AUTHENTICATED_REMEMBERED" />
     <security:http-basic/>
</security:http>

ユーザー名とパスワードの任意の組み合わせに対して、少なくとも 1 つの権限をユーザーに付与する独自のユーザー サービスを作成します。作成したサービスを使用するように Spring Security を構成します。

<bean id="userService" class="com.ek.UserService" />
<authentication-manager alias="authenticationManager">
    <authentication-provider user-service-ref="userService" />
</authentication-manager>

これにより、何をする必要があるかについてのアイデアが得られることを願っています。それ以外の場合は、サンプル コードの作成に取り掛かることができます。

于 2013-01-24T09:12:42.447 に答える
0

あなたが変わるなら

<security:http auto-config="true">

<security:http auto-config="true" use-expressions="true">

次に、からインターセプトを設定できます

<security:intercept-url pattern="/**" access="ROLE_USER" />
<security:intercept-url pattern="/*.wsdl" access="ROLE_USER" />

<security:intercept-url pattern="/**" access="isAuthenticated()" />
<security:intercept-url pattern="/*.wsdl" access="isAuthenticated()" />

これにより、認証されたユーザーがこれらの URL パターンにアクセスできるようになります。

于 2013-01-24T03:16:15.830 に答える