Angular Kerberos Spnego在弹簧和角度前端+;JWT
我的主要目标是首先进行Kerberos身份验证,如果失败,则使用Angular的表单页面向Angular Kerberos Spnego在弹簧和角度前端+;JWT,angular,spring,kerberos,spnego,Angular,Spring,Kerberos,Spnego,我的主要目标是首先进行Kerberos身份验证,如果失败,则使用Angular的表单页面向/users/login发送带有用户名/密码的帖子 我已经在Spring中进行了相当多的配置,并且已经进行了一次登录/密码验证,该验证将返回一个JWT,前端有防护装置。前端服务于Spring的resources文件夹中 Kerberos似乎没有弹出/自动记录。有什么特别的事情要做吗 Kerberos登录后创建筛选器是在前端处理身份验证的正确方法吗?因为我的Spnego配置使用的是SpnegoEntryPoi
/users/login
发送带有用户名/密码的帖子
我已经在Spring中进行了相当多的配置,并且已经进行了一次登录/密码验证,该验证将返回一个JWT,前端有防护装置。前端服务于Spring的resources文件夹中
Kerberos似乎没有弹出/自动记录。有什么特别的事情要做吗
Kerberos登录后创建筛选器是在前端处理身份验证的正确方法吗?因为我的Spnego配置使用的是
SpnegoEntryPoint(“/#/login”)
和/或Spring安全性使用的是.formLogin().loginPage(“/#/login”).permitAll()
而且由于Spnego使用了转发而不是重定向,因此他找不到页面服务器端,抛出了404而不是401
401是触发Kerberos身份验证以及标头WWW Authorization:Negotiate
。因此,由于它抛出了404,它从未启动Kerberos身份验证
因此,我将/#/login
更改为/index.html
(/
可能会起作用)
然后,在Angular端(在app.component.ts
中),我在安全端点/connect
和我的CustomAuthenticationSuccessHandler.java
上触发一个API调用,注册到我的过滤器中,只需在头Authorization:Bearer
UserDetails authUser = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
httpServletResponse.addHeader(SecurityConstants.HEADER_STRING,
SecurityConstants.TOKEN_PREFIX + TokenUtil.generateToken(authUser));
然后,我只需获取标题,将其存储在LocalStorage中,将用户重定向到页面。因为我的Spnego配置使用的是
SpnegoEntryPoint(“/#/login”)
和/或Spring安全性使用的是.formLogin().loginPage(“/#/login”).permitAll()
而且由于Spnego使用了转发而不是重定向,因此他找不到页面服务器端,抛出了404而不是401
401是触发Kerberos身份验证以及标头WWW Authorization:Negotiate
。因此,由于它抛出了404,它从未启动Kerberos身份验证
因此,我将/#/login
更改为/index.html
(/
可能会起作用)
然后,在Angular端(在app.component.ts
中),我在安全端点/connect
和我的CustomAuthenticationSuccessHandler.java
上触发一个API调用,注册到我的过滤器中,只需在头Authorization:Bearer
UserDetails authUser = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
httpServletResponse.addHeader(SecurityConstants.HEADER_STRING,
SecurityConstants.TOKEN_PREFIX + TokenUtil.generateToken(authUser));
然后,我只需获取标题,将其存储在LocalStorage中,将用户重定向到页面