Передать имя пользователя и пароль из JSF или JSP в Oracle Reports

Я хотел бы знать, есть ли способ использовать JSF, JSTL или JSP для передачи идентификатора пользователя и пароля другим приложениям, не будучи невидимым, когда пользователь видит жестко запрограммированное значение в источнике представления в браузере?

В идеале я хотел бы вызвать отчет Oracle со страницы JSF или JSP, поэтому как я могу передать имя пользователя и пароль, не добавляя в скрытые поля или поля ввода, чтобы, когда пользователь просматривает исходный код в браузере, он / она не мог чтобы увидеть детали аутентификации.

Я могу добавить что-то вроде

Map map = new HashMap();
map.put("username", "SMITH");
map.put("password", "SMT");
FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
        .put("reportParams", map);
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.redirect("http://server:8889/reports/rwservlet");

но не уверен, как я могу передать карту с URL-адресом или как вызвать это с помощью JSTL или на странице JSF. Даже если я передам как параметр, пользователь, возможно, сможет увидеть значения параметров.

Любая помощь очень ценна.

Спасибо


person Jacob    schedule 12.02.2013    source источник
comment
Вы читали о методах единого входа (SSO)? Ваше приложение никогда не должно иметь доступа к паролю любого пользователя в виде простого текста, поэтому вы не сможете отправить его другим приложениям. Однако SSO дает подход, при котором не нужно передавать его с помощью централизованной точки аутентификации.   -  person Alonso Dominguez    schedule 12.02.2013
comment
Внешнее приложение работает в том же веб-контейнере?   -  person Uooo    schedule 12.02.2013
comment
@AlonsoDominguez В настоящее время мы не используем систему единого входа.   -  person Jacob    schedule 13.02.2013
comment
@ w4rumy Внешние приложения находятся на том же сервере приложений, но в другом экземпляре OC4J. Спасибо   -  person Jacob    schedule 13.02.2013
comment
@Polppan Я уже догадался об этом сам, я просто предлагаю вам сделать это, поскольку это самый безопасный способ обмена учетными данными для аутентификации между различными веб-приложениями.   -  person Alonso Dominguez    schedule 13.02.2013
comment
@AlonsoDominguez Да, я согласен с вами, SSO - лучший подход для этого, на данный момент реализация SSO невозможна. И именно поэтому я искал другие решения. Спасибо   -  person Jacob    schedule 13.02.2013
comment
@AlonsoDominguez Мне удалось решить проблему, смотрите мой ответ. Спасибо   -  person Jacob    schedule 14.02.2013


Ответы (1)


В файле cgicmd.dat сведения об аутентификации сервера отчетов Oracle можно указать следующим образом.

myconn:    userid=scott/tiger@DB report=myreport.jsp %*

и используйте myconn при передаче параметра из JSF или JSP в отчет Oracle. Таким образом можно избежать жесткого кодирования имени пользователя или пароля.

person Jacob    schedule 14.02.2013
comment
Я дам вам +1 за то, что вы нашли решение, которое не подразумевает передачу пароля в виде простого текста, хорошая находка! - person Alonso Dominguez; 14.02.2013