簡體   English   中英

Spring 和 Angular 前端 + JWT 中的 Kerberos Spnego

[英]Kerberos Spnego in Spring and Angular frontend + JWT

我的主要目標是首先進行 Kerberos 身份驗證,如果失敗,則使用 Angular 的表單頁面將帶有用戶名/密碼的帖子發送到/users/login

我已經在 Spring 中進行了如下配置,並且已經進行了登錄/密碼身份驗證,該身份驗證發送回 JWT,前端有警衛。 前端在 Spring 的資源文件夾中提供。

Kerberos 似乎沒有彈出/自動日志。 有什么具體要做的嗎?

在 Kerberos 登錄后創建過濾器是在前端處理身份驗證的正確方法嗎?

因為我的 Spnego 配置使用SpnegoEntryPoint("/#/login")和/或 Spring 安全使用.formLogin().loginPage("/#/login").permitAll()並且因為 Spnego 使用Forward而不是Redirect ,他找不到頁面服務器端並拋出了404而不是401。

401 是觸發 Kerberos 身份驗證以及 header WWW-Authorization: Negotiate的原因。 因此,由於它拋出了 404,它從未啟動過 Kerberos 身份驗證。

因此,我將/#/login都更改為/index.html/可能會起作用)。

Then, Angular side (in app.component.ts ), I trigger an API call on a secure endpoint /connect and my CustomAuthenticationSuccessHandler.java registered to my filter simply decorate the header with a JWT Token in the header Authorization: Bearer

UserDetails authUser = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
httpServletResponse.addHeader(SecurityConstants.HEADER_STRING,
                SecurityConstants.TOKEN_PREFIX + TokenUtil.generateToken(authUser));

然后我只需將 header 存儲在 LocalStorage 中,將用戶重定向到頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM