在Spring Security中,应用程序是否可以容易地配置为使用两种不同的 grant_type ?
我们的Java BE应用程序将通过Angular FE应用程序供2种不同类型的用户使用。用户类型定义为请求标头:
我们设法在application.properties中定义了它:
#employee user
spring.security.oauth2.client.registration.employee.authorization-grant-type=authorization_code
spring.security.oauth2.client.provider.employee.authorization-uri=https://saml.company.com/oauth/authorize
spring.security.oauth2.client.registration.employee.redirect-uri=https://appDomain.com/appContext/login/oauth2/code/employee
spring.security.oauth2.client.provider.employee.token-uri=https://saml.company.com/oauth/token
spring.security.oauth2.client.registration.employee.scope=theScope
spring.security.oauth2.client.registration.employee.client-id=CLIENT_ID1
spring.security.oauth2.client.registration.employee.client-secret=SECRET
#general user
spring.security.oauth2.client.registration.direct.authorization-grant-type=client_credentials
spring.security.oauth2.client.provider.direct.token-uri=https://saml.company.com/oauth/token
spring.security.oauth2.client.registration.direct.client-id=CLIENT_ID2
spring.security.oauth2.client.registration.direct.client-secret=SECRET
与此相关的主要问题是,两种用户类型(员工和普通用户)的未声明的调用都被重定向到标准的Spring / login页面,该页面显示2个HTML锚链接,指向2个不同的flow / grant_type。
所需的行为是:
我们尝试使用过滤器来避免/ login重定向无效。有什么想法吗?