我正在使用带有自定义登录模块的JaasRealm的Tomcat CMA。在这里,我压倒了boolean LoginModule#login()
方法。现在,只要请求进入Web应用程序上下文,首先它将通过此登录方法进行身份验证。因为,这个登录方法有boolean
返回类型
@Override
public boolean login() throws LoginException {
Callback[] callbacks = new Callback[2];
所以如果返回值是true
那么它继续完成进一步的请求,如果返回值是false
则返回401 Status
。在某些情况下,我想在返回值时返回其他401状态的情况为false。但似乎对我来说这是不可能的。任何想法如何在loginModule返回false时发送回我修改后的状态作为响应。
您既不能在登录模块中也不能在JAASRealm中影响响应,如果身份验证成功,这些类只会创建一个Principal,否则为null,否则JAASRealm会吞下每个异常。
所以,为了做到这一点,你应该
类似的线程可以找到here