J'ai ce JAR monolithe dans ma configuration de serveur Web actuelle. L'ensemble du système a été dessiné de telle sorte que vous ne pouvez pas avoir des applications Web distinctes, tout tourne autour de ce grand pot. Dans le processus de résolution, j'essaye de retirer l'authentification sso du paquet de sécurité d'origine (dont j'ai le code source), le problème auquel je suis confronté est lié à une classe Usuario.Est-il possible de cloner une classe en Java?
D'après ce que je comprends, la classe originale établira un atribute « usuario », après avoir obtenu les atributs du tokenid
usuario = ssoUtil.getAtributosUsuario(tokenId);
httpSession.setAttribute("usuario", usuario);
httpServletRequest.setAttribute("usuario", usuario);
J'ai changé la classe Usuario à UsuarioSSO, et mis en œuvre toute chose d'authentification en tant que filtre de serveur global - puisque c'est une exigence du projet qu'il est impossible de publier quoi que ce soit sur le serveur sans authentification.
La classe Usuario actuelle - celle qui est définie - est juste un groupe de variables privées, getters, setters et deux méthodes avec l'implémentation des classes Serializable et HttpSessionBindingListener.
La question se pose lorsque toutes les classes du problème d'origine INTL tentent d'obtenir le Usuario atributs du httpsession:
java.lang.ClassCastException: pathToClass.UsuarioSSO cannot be cast to intlPathToClass.Usuario
Ce que je suis en train d'atteindre est d'obtenir ce casting de travailler. Mais il semble impossible de faire un downcast, même si les deux classes sont identiques. Juste pour info, je peux changer la classe INTL Usuario à volonté, mais je ne peux pas changer le code qui utilise réellement cette classe, tout irait bien si je pouvais changer toutes les références à Usuario INTL à UsuarioSSO.
Des suggestions?
L'utilisateur ne peut-il pas étendre l'Usuario? –
Pourquoi dupliquer le code? Déplacez la classe 'Usuario' d'origine du grand pot dans un pot séparé. Ensuite, utilisez ce pot dans l'application existante et votre nouveau filtre. – erickson
Si je déplace la classe dans un fichier jar distinct, je dois toujours utiliser les anciennes conventions de dénomination de paquet, ou modifier toutes les références à la classe Usuario d'origine. –