Вход в Spring Security только с именем пользователя и роль без пароля - PullRequest
0 голосов
/ 31 мая 2019

Я получаю идентификатор пользователя windows из файла java и передаю его в веб-приложение.затем я хочу получить соответствующую роль пользователя из базы данных и должен быть установлен.Я пробовал это с пружинной безопасностью, но не получил правильного ответа.

enter image description here

Я ссылался на приведенный ниже учебник https://www.mkyong.com/spring-security/spring-security-form-login-using-database/, яудалил поле пароля и я пробовал только с полем имени пользователя.но это не работает.

<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.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security.xsd">



    <!-- enable use-expressions -->
    <http auto-config="true" use-expressions="true">
        <intercept-url pattern="/admin**" access="hasRole('ROLE_ADMIN')" />

        <!-- access denied page -->
        <access-denied-handler error-page="/403" />
        <form-login 
            login-page="/login" 
            default-target-url="/hello" 
            authentication-failure-url="/login?error" 
            username-parameter="username"
            password-parameter="password" />
        <logout logout-success-url="/login?logout"  />
        <!-- enable csrf protection -->
        <csrf/>

         <intercept-url pattern="/login/**" access="permitAll" />
        <intercept-url pattern="/**" access="isAuthenticated()" />  
    </http>




    <!-- Select users and user_roles from database -->
    <authentication-manager>
        <authentication-provider>
         <password-encoder ref="bcryptEncoder"/>
            <jdbc-user-service data-source-ref="ds"
                users-by-username-query=
                    "select username,password, enabled from users where username=?"
                authorities-by-username-query=
                    "select username, role from user_roles where username =?  " />
        </authentication-provider>
    </authentication-manager>

    <beans:bean id="bcryptEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />


</beans:beans>

Я не хочу использовать запрос «user-by-username-query» в провайдере аутентификации.Я хочу выполнить только «полномочия по имени пользователя-запроса» и установить роль.Таблица ролей также описана в руководстве.

Пожалуйста, ознакомьте меня с этой темой.

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