получить идентификатор пользователя клиента (идентификатор входа в Windows) весной без аутентификации входа в браузер - PullRequest
0 голосов
/ 21 мая 2019

Я новичок в Spring Framework, в настоящее время разрабатываю веб-приложение. это приложение должно автоматически принимать идентификатор пользователя Windows клиента без какой-либо аутентификации браузера (при доступе с другого компьютера с использованием имени компьютера). все компьютеры подключены в интрасети, также используя LDAP.

до того, как я разработал такое же приложение на PHP. там это работает без проблем. Просто я могу использовать $_SERVER['PHP_AUTH_USER']; и получить идентификатор пользователя клиента.

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

enter image description here

Я добавил все связанные файлы jar в папку lib apache-tomcat. 1.Guvna 2.platform 3.slf4j 4. вафельный джна 5. вафельный причал 6. waffle- tomcat9

<?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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.2.xsd">

    <!-- windows authentication provider -->
    <bean id="waffleWindowsAuthProvider" class="waffle.windows.auth.impl.WindowsAuthProviderImpl" />

    <!-- collection of security filters -->
    <bean id="negotiateSecurityFilterProvider" class="waffle.servlet.spi.NegotiateSecurityFilterProvider">
        <constructor-arg ref="waffleWindowsAuthProvider" />
    </bean>

    <bean id="basicSecurityFilterProvider" class="waffle.servlet.spi.BasicSecurityFilterProvider">
        <constructor-arg ref="waffleWindowsAuthProvider" />
    </bean>

    <bean id="waffleSecurityFilterProviderCollection" class="waffle.servlet.spi.SecurityFilterProviderCollection">
        <constructor-arg>
            <list>
                <ref bean="negotiateSecurityFilterProvider" />
                <ref bean="basicSecurityFilterProvider" />
            </list>
        </constructor-arg>
    </bean>


    <bean id="negotiateSecurityFilterEntryPoint" class="waffle.spring.NegotiateSecurityFilterEntryPoint">
        <property name="provider" ref="waffleSecurityFilterProviderCollection" />
    </bean>

    <!-- spring authentication provider -->
    <sec:authentication-manager alias="authenticationProvider" />


      <!-- spring filter entry point -->
    <sec:http  use-expressions="true" entry-point-ref="negotiateSecurityFilterEntryPoint">
           <sec:custom-filter ref="tmswaffleNegotiateSecurityFilter" position="BASIC_AUTH_FILTER" />
        <sec:intercept-url pattern="/users" access="hasRole('USER')" />

    </sec:http>

    <bean id="tmswaffleNegotiateSecurityFilter" class="com.javatpoint.config.tmsegotiateSecurityFilter">
        <property name="provider" ref="waffleSecurityFilterProviderCollection" />
        <property name="allowGuestLogin" value="false" />
        <property name="principalFormat" value="fqn" />
        <property name="roleFormat" value="both" />
    </bean>

</beans>

Я пробовал то же самое весной. но не может получить идентификатор пользователя. Я пробовал вафельный фильтр, но браузер запрашивал в браузере аутентификацию Windows. но я не хочу аутентифицироваться Мне нужен только идентификатор пользователя Windows клиента при доступе к приложению.

, пожалуйста, помогите мне в этой теме.

...