У меня этот монолитный JAR в моей текущей конфигурации веб-сервера. Вся система была разработана таким образом, что у вас не может быть отдельных веб-приложений, все работает вокруг этой большой банки.Можно ли клонировать класс в Java?
В процессе решения этого вопроса я пытаюсь вывести аутентификацию sso из исходного пакета безопасности (который у меня есть исходный код), проблема, с которой я имею дело, связана с классом Usuario.
Из того, что я понимаю, оригинальный класс будет установлен atribute «Новичок», после получения atributes от tokenid
usuario = ssoUtil.getAtributosUsuario(tokenId);
httpSession.setAttribute("usuario", usuario);
httpServletRequest.setAttribute("usuario", usuario);
я изменил класс Новичок в UsuarioSSO и реализовали все аутентификации вещь как глобальный серверный фильтр - поскольку это требование проекта, что невозможно публиковать что-либо на сервере без проверки подлинности.
Фактический класс Usuario - тот, который установлен - это всего лишь куча частных переменных, геттеров, сеттеров и двух методов с реализацией классов Serializable и HttpSessionBindingListener.
Проблема возникает тогда, когда какие-либо классы от исходной задачи INTL попытаться получить atributes Новичок из HTTPSession:
java.lang.ClassCastException: pathToClass.UsuarioSSO cannot be cast to intlPathToClass.Usuario
То, что я пытаюсь добиться, чтобы получить этот бросок работать. Но кажется невозможным сделать нисходящий, даже оба класса идентичны.
Просто FYI, я могу изменить класс INTL Usuario по своему усмотрению, но я не могу изменить код, который фактически использует этот класс, все будет работать нормально, если я могу изменить все ссылки на INTL Usuario на UsuarioSSO.
Любые предложения?
Не может UsuarioSSO расширить Usuario? –
Зачем дублировать код? Переместите исходный класс 'Usuario' из большой банки в отдельную банку. Затем используйте эту банку в существующем приложении и новый фильтр. – erickson
Если я переведу класс в отдельную банку, мне все равно нужно использовать старые соглашения об именах пакетов или изменить все ссылки на исходный класс Usuario. –