フォーム送信を処理するために Spring SimpleFormController を使用しています。クライアントがプリエンプティブ認証で httpclient.getState().setCredentials によって httpclient に UsernamePasswordCredentials を設定する場合、「onSubmit」メソッド内の HttpServletRequest からサーバー側でこの UsernamePasswordCredential を取得するにはどうすればよいですか。
1466 次
1 に答える
1
リクエストから「認証」ヘッダー値を取得し、その値を Base64 デコードして、誰かがネットワーク通信を傍受した場合にユーザー名とパスワードが実際に非常に簡単に読み取れることを示します。(これが、認証に HTTPS を使用することをお勧めする理由です)。
try {
String auth = request.getHeader("Authorization");
if(auth!=null&&auth.length()>6){
String userpassEncoded = auth.substring(6);
// Decode it, using any base 64 decoder
sun.misc.BASE64Decoder dec = new sun.misc.BASE64Decoder();
String userpassDecoded= new String(dec.decodeBuffer(userpassEncoded));
System.out.println(" userpassDecoded = "+userpassDecoded);
}
} catch (Exception e) {
e.printStackTrace();
}
于 2013-10-03T05:34:47.303 に答える