0

フォーム送信を処理するために Spring SimpleFormController を使用しています。クライアントがプリエンプティブ認証で httpclient.getState().setCredentials によって httpclient に UsernamePasswordCredentials を設定する場合、「onSubmit」メソッド内の HttpServletRequest からサーバー側でこの UsernamePasswordCredential を取得するにはどうすればよいですか。

4

1 に答える 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 に答える