我正在使用Spring SimpleFormController来处理表单提交。当客户端在httpclient中通过httpclient.getState()。setCredentials在抢占式身份验证上设置UsernamePasswordCredentials时,如何在我的“onSubmit”方法中从HttpServletRequest获取服务器端的UsernamePasswordCredential。
答案 0 :(得分:1)
我们可以从请求中获取'authorization'标头值,并对该值进行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();
}