Spring 3 ベースの Web アプリでは、AbstractUserDetailsAuthenticationProvider のカスタム実装を使用して、ユーザー名とパスワードのペアだけでなく、クライアントの IP アドレスもチェックしています。ただし、内で呼び出すとretrieveUser()
:
@Override
protected UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException {
...
String ipAddr = ((WebAuthenticationDetails)authentication.getDetails()).getRemoteAddress();
...
User user = ...
return user;
}
戻ります0:0:0:0:0:0:0:1%0
。これは、localhost の IP v6 アドレスになります。そのメソッドが IP v6 アドレスを返す場合、IP v4 アドレスのホワイト リストと照合するにはどうすればよいですか? ホワイトリストに IP v4 および v6 との互換性を提供できますか? あなたの洞察に感謝します!