是否可以在Java中克隆一个类?

时间:2016-04-27 19:57:37

标签: java web-services inheritance single-sign-on httpsession

我在当前的Web服务器配置中使用了这个monolith JAR。整个系统的绘制方式使您无法拥有单独的Web应用程序,所有内容都围绕着这个大罐子运行。

在解决这个问题的过程中,我试图从原始安全包(我有源代码)中取出sso身份验证,我处理的问题与Usuario有关。类。

根据我的理解,原来的课程将设置一个' usuario'从tokenid获取属性后的atribute

usuario = ssoUtil.getAtributosUsuario(tokenId);

httpSession.setAttribute("usuario", usuario);
httpServletRequest.setAttribute("usuario", usuario);

我将Usuario类更改为UsuarioSSO,并将整个身份验证事项实现为全局服务器过滤器 - 因为项目要求在没有身份验证的情况下无法在服务器上发布任何内容。

实际的Usuario类 - 设置的类 - 只是一堆私有变量,getter,setter和两个方法,它们实现了Serializable和HttpSessionBindingListener类。

当原始INTL问题中的任何类试图从httpSession获取Usuario属性时,会出现问题:

java.lang.ClassCastException: pathToClass.UsuarioSSO cannot be cast to intlPathToClass.Usuario

我想要实现的目标是让这个演员阵容发挥作用。但即使你们两个班级都是相同的,似乎也不可能做一个沮丧的人。

仅供参考,我可以随意更改INTL Usuario类,但我无法更改实际使用该类的代码,如果我可以将对INTL Usuario的所有引用更改为UsuarioSSO,一切都会正常工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我同意埃里克森的评论。您可以将类移动到单独的jar中。您仍然可以保留原始包名称。

两个罐子可以使用相同的包装名称。它变得怪异的唯一时间是这些包具有相同的类。但如果你移动Usuario课程,这应该是一个问题。