【发布时间】:2018-03-01 07:51:15
【问题描述】:
我正在尝试在 Websphere Application Server 上开发和部署自定义信任关联拦截器。做了以下步骤
- 创建了一个实现 TrustAssociationInterceptor 接口及其方法的类
- 创建了一个JAR并将其放在服务器目录的lib/ext文件夹下
- 在“全局安全 -> Web 和 SIP 安全 -> 信任关联 -> 拦截器”中创建了我的自定义拦截器类的条目,启用拦截器(复选框)并重新启动服务器。
在任何日志(包括服务器启动/停止日志、sysout 日志或跟踪日志)的任何位置都找不到我在自定义拦截器的初始化方法中放置的 Sysout。 无法弄清楚错过了哪个配置。 另外,在将自定义拦截器类添加到拦截器列表时,是否需要在自定义拦截器类中添加任何自定义属性? 任何指针将不胜感激。
以下是自定义 TAI 代码
public class CustomSSOTAI implements TrustAssociationInterceptor {
private static final String CUSTOM_TAI_VERSION = "1.0.0";
private static final String CUSTOM_TAI_TYPE = "Custom Trust Association Interceptor";
@Override
public void cleanup() {
// TODO Auto-generated method stub
System.out.println("*****##### Custom SSO TAI - Inside cleanup Method #####*****");
}
@Override
public String getType() {
// TODO Auto-generated method stub
System.out.println("*****##### Custom SSO TAI - Inside getType Method #####*****");
return CUSTOM_TAI_TYPE;
}
@Override
public String getVersion() {
// TODO Auto-generated method stub
System.out.println("*****##### Custom SSO TAI - Inside getVersion Method #####*****");
return CUSTOM_TAI_VERSION;
}
@Override
public int initialize(Properties arg0) throws WebTrustAssociationFailedException {
// TODO Auto-generated method stub
System.out.println("*****##### Custom SSO TAI - Inside initialize Method #####*****");
System.out.println("*****##### Initializing Custom SSO TAI #####*****");
return 0;
}
@Override
public boolean isTargetInterceptor(HttpServletRequest arg0) throws WebTrustAssociationException {
// TODO Auto-generated method stub
System.out.println("*****##### Custom SSO TAI - Entering isTargetInterceptor Method #####*****");
System.out.println("Determining if this TAI should handle the incoming request...");
if (arg0.getParameter("callCustomInterceptor") != null) {
System.out.println("callCustomInterceptor: " + arg0.getParameter("callCustomInterceptor"));
System.out.println("Custom SSO TAI is being used to establish trust!");
return true;
}
System.out.println("Bypassing Custom SSO TAI, did not find a user ID in the request");
System.out.println("*****##### Custom SSO TAI - Exiting isTargetInterceptor Method #####*****");
return false;
}
@Override
public TAIResult negotiateValidateandEstablishTrust(HttpServletRequest arg0, HttpServletResponse arg1)
throws WebTrustAssociationFailedException {
// TODO Auto-generated method stub
System.out.println("*****##### Custom SSO TAI - Entering negotiateValidateandEstablishTrust Method #####*****");
String userId = arg0.getParameter("uid");
if (userId.equals("portalUser")) {
System.out.println("*********** CustomSSOTAI *****************");
System.out.println("UserID = " + userId);
return TAIResult.create(SipServletResponse.SC_OK, userId);
}
System.out.println("*****##### Custom SSO TAI - Exiting negotiateValidateandEstablishTrust Method #####*****");
return TAIResult.create(SipServletResponse.SC_FORBIDDEN, userId);
}
}
致以诚挚的问候, Ekansh
【问题讨论】:
-
您是否启用了管理和应用程序安全性?
-
是的,管理和应用安全都已启用
-
应该可以,你能在问题中添加代码 - 类定义和 init 方法吗(删除你拥有的其他方法的主体)。
-
谢谢,已经添加了init方法的代码。还要提一下我使用的WAS版本是8.0.5 这个版本支持自定义TAI吗?
标签: java security websphere interceptor