[英]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.