カスタム認証プロバイダ内でHttpServletRequestにアクセスする方法を教えてください。私はこのカスタム認証プロバイダ内でHttpServletRequestへのアクセスを取得
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
String username = (String) httpReq.getAttribute("j_username");
OR
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
HttpServletRequest httpReq = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
String username = (String) httpReq.getAttribute("j_username");
私は取得していますユーザ名のヌル
が、RequestContextHolder.getRequestAttributes()を実行しようとしています。 nullを返します。
私はrequestcontextを参照したり、渡したり、Springに魔法をさせて参照させたいと思っています。
私も私のweb.xmlに<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
をRequestContextListenerを与えている
私はセキュリティのフォーラムを検索しましたが、それでもまだ何も見つけたhavent。
ありがとうございます。
これらの資格情報をAuthenticationオブジェクトに含めるべきではありませんか? http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/authentication/AuthenticationProvider.html – dardo
Dardoは正しいです。このようにしてユーザー名にアクセスしようとする正当な理由を考えることができないため、基本的なサンプルを見て、ドキュメントの一部を読んでから、達成しようとしていることをさらに詳しく説明する必要があります。 –
認証情報は実際には認証オブジェクトに格納されます。しかし、私も解決策を探しています。私もリクエストにアクセスする必要がありますが、もう一つの理由があります。私のアプリではURLが認証の役割を果たします。どのようにこのクラスでそれを得るためのアイデア? – Wouter