1

Basic HTTP 認証を使用する Web アプリがあります。

web.xml

...
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>file</realm-name>
</login-config>
...

深いコード空間のどこかでの間接的な使用...

User getLogedUser(HttpServletRequest request)

そして、JSF 2で書き直す必要がありますが、JSF 2でこの認証方法を使用する方法がわかりません(「HttpServletRequestリクエスト」を取得する方法が見つかりませんでした)

グーグルは彼の最初のページに有用なヒットを投げませんでした

事前に回答いただきありがとうございます。

4

2 に答える 2

1

ユーザー名を返すExternalContext.getRemoteUser()を探していると思います。

使用法:

FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
于 2012-08-07T17:58:18.170 に答える
1

rawHttpServletRequestは で利用可能な JSF にありますExternalContext#getRequest()

ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) ec.getRequest();
// ...

getLoggedUser()ただし、代わりにリモートユーザーを取得する方法を変更した方がよいと思います。

User getLoggedUser(String remoteUser)

ExternalContext#getRemoteUser()どちらかまたはそれに餌をやるだけですHttpServletRequest#getRemoteUser()。これにより、サーブレット API または JSF API の依存関係からメソッドが分離されます。

于 2012-08-07T18:22:07.747 に答える