私は現在のWebサーバー構成でこのモノリスJARを持っています。システム全体が、あなたが別々のWebアプリケーションを持つことができないように描画されました。すべてがこの大きな瓶の周りを走っています。Javaでクラスをクローンすることはできますか?
これを解決する過程で、元のセキュリティパッケージ(私はソースコードを持っています)からsso認証を取り出しようとしています。私が扱っている問題はUsuarioクラスに関連しています。私が理解から
、元のクラスは、私がUsuarioSSOにUsuarioクラスを変更し
usuario = ssoUtil.getAtributosUsuario(tokenId);
httpSession.setAttribute("usuario", usuario);
httpServletRequest.setAttribute("usuario", usuario);
のTokenIdからatributesを取得した後、「usuario」atributeを設定し、として全体の認証のことを実施しますグローバルサーバーフィルタ - プロジェクトの要件として、認証なしでサーバー上に何かを公開することは不可能なためです。
実際のUsuarioクラス(設定されているもの)は、プライベート変数、ゲッタ、セッタ、およびSerializableクラスとHttpSessionBindingListenerクラスの実装を持つ2つのメソッドの束です。
元INTLの問題から、いずれかのクラスがUsuarioはHttpSessionのからatributes取得しようとすると問題が発生する:
java.lang.ClassCastException: pathToClass.UsuarioSSO cannot be cast to intlPathToClass.Usuario
私は何を達成しようとしていることは、このキャストは仕事を得ることです。しかし、ダウンキャストをすることは不可能です。どちらのクラスも同じです。
私は、INTL Usuarioクラスを自由に変更できますが、実際にそのクラスを使用するコードは変更できません。INTL Usuarioへの参照をすべてUsuarioSSOに変更することができます。
提案がありますか?
UsuarioSSOはUsuarioを拡張できませんか? –
なぜコードを複製するのですか?元の 'ウスアリオ 'クラスをビッグジャーから別のジャーに移す。次に、既存のアプリケーションと新しいフィルタでそのjarファイルを使用します。 – erickson
クラスを別のjarに移動する場合、古いパッケージの命名規則を使用するか、元のUsuarioクラスへの参照をすべて変更する必要があります。 –