Glassfish4: Waffle SSO Servlet Filter выдает всплывающее окно для входа в систему Basic auth

Я пытаюсь реализовать SSO в своем приложении (используя пример Waffle) , где я сохранил следующие банки в библиотеке сервера приложений:

caffeine-2.8.4.jar
jcl-over-slf4j-2.0.0-alpha1.jar
jna-platform-5.5.0.jar
logback-classic-1.3.0-alpha5.jar
logback-core-1.3.0-alpha5.jar
slf4j-api-2.0.0-alpha1.jar
waffle-tomcat7-2.3.0.jar
waffle-jna-2.3.0.jar

Я обновил свой web.xml, чтобы иметь соответствующий фильтр безопасности:

<!-- SSO -->
    <filter>
      <filter-name>SecurityFilter</filter-name>
      <filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>SecurityFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

Следующим шагом я запускаю приложение как службу с моим доменным именем пользователя. Все хорошо до сих пор.

Теперь, когда я нажимаю URL-адрес приложения, появляется всплывающее окно базовой аутентификации. Когда я проверил журналы, все выглядит хорошо:

[2020-12-10T15:48:38.897+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=33 _ThreadName=Thread-9] [timeMillis: 1607615318897] [levelValue: 800] [[
  15:48:38.897 [http-listener-1(4)] DEBUG waffle.servlet.NegotiateSecurityFilter - GET /iFM/desktopNotification_serviceWorker.js, contentlength: -1]]

[2020-12-10T15:48:38.897+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=33 _ThreadName=Thread-9] [timeMillis: 1607615318897] [levelValue: 800] [[
  15:48:38.897 [http-listener-1(4)] DEBUG waffle.servlet.spi.NegotiateSecurityFilterProvider - security package: Negotiate, connection id: 0:0:0:0:0:0:0:1:60170]]

[2020-12-10T15:48:38.897+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=33 _ThreadName=Thread-9] [timeMillis: 1607615318897] [levelValue: 800] [[
  15:48:38.897 [http-listener-1(4)] DEBUG waffle.servlet.spi.NegotiateSecurityFilterProvider - token buffer: 121 byte(s)]]

[2020-12-10T15:48:38.908+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=33 _ThreadName=Thread-9] [timeMillis: 1607615318908] [levelValue: 800] [[
  15:48:38.908 [http-listener-1(4)] DEBUG waffle.servlet.spi.NegotiateSecurityFilterProvider - continue token: oRswGaADCgEAoxIEEAEAAADBU/5OcoZ2owAAAAA=]]

[2020-12-10T15:48:38.909+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=33 _ThreadName=Thread-9] [timeMillis: 1607615318909] [levelValue: 800] [[
  15:48:38.908 [http-listener-1(4)] DEBUG waffle.servlet.spi.NegotiateSecurityFilterProvider - continue required: false]]

[2020-12-10T15:48:39.045+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=33 _ThreadName=Thread-9] [timeMillis: 1607615319045] [levelValue: 800] [[
  15:48:39.045 [http-listener-1(4)] DEBUG waffle.servlet.NegotiateSecurityFilter - logged in user: INT\WareyAn (S-1-5-21-746137067-764733703-725345543-1003051)]]

[2020-12-10T15:48:40.843+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=33 _ThreadName=Thread-9] [timeMillis: 1607615320843] [levelValue: 800] [[
  15:48:40.843 [http-listener-1(4)] DEBUG waffle.servlet.NegotiateSecurityFilter - roles: (**I have removed this info **)

[2020-12-10T15:48:40.843+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=33 _ThreadName=Thread-9] [timeMillis: 1607615320843] [levelValue: 800] [[
  15:48:40.843 [http-listener-1(4)] INFO waffle.servlet.NegotiateSecurityFilter - successfully logged in user: INT\WareyAn]]

Итак, глядя на журналы, похоже, что Waffle аутентифицировал меня в , но Glassfish все еще почему-то не доверяет ему (показывая мне всплывающее окно), есть идеи, что происходит не так? Любая помощь приветствуется .

К вашему сведению: мое приложение использует LDAPRealm для аутентификации.


person Aniket Warey    schedule 10.12.2020    source источник


Ответы (1)


Хорошо, я смог решить это сам, и, наконец, это сработало на Glassfish4 !! Поскольку я использовал фильтр сервлета, мой web.xml не должен был иметь следующие вещи (поскольку ранее это был вход на основе формы):

<security-constraint>
    <display-name>AppSecurity Constraint</display-name>

    <web-resource-collection>
        <web-resource-name>Protected Area (Whole Application)</web-resource-name>
        <url-pattern>/mainUrl/*</url-pattern>
        <url-pattern>/url2/*</url-pattern>
        <url-pattern>/url3/*</url-pattern>
        <url-pattern>/url4/*</url-pattern>
        <url-pattern>/url5/*</url-pattern>
    </web-resource-collection>

    <!-- User must be in role to login. -->
    <auth-constraint>
        <role-name>SomeRoleName</role-name>
    </auth-constraint>
</security-constraint>

После его удаления он начал работать.

person Aniket Warey    schedule 23.12.2020