Java を使用して svn のカスタム UI を構築しようとしていました。テキストボックスに svn URL を指定する単純なアプリケーションです。ブラウザは、認証のためにユーザー名とパスワードを要求します。そして、SVNのディレクトリ構造を参照できます(読み取り目的のみ)
そのために、svnkit jar を選択しました。認証 (ビジネス ロジック) は非常に簡単です。
public static ISVNAuthenticationManager authManager = null; // currently used a static variable in the class
public List<String> myfunction(String path, String uName, String password){
public static SVNRepository repository =
SVNRepositoryFactory.create(SVNURL.parseURIEncoded(url.toString()));
if(authManager == null){ // initializing if the authentication is not present
if( uName != null
&& password != null
&& !uName.trim().equals("") && !password.trim().equals("") ){
authManager =
SVNWCUtil.createDefaultAuthenticationManager(uName, password);}
}
repository.setAuthenticationManager(authManager);
// logic for fetching files/folders for the specific url
}
問題は、リポジトリに URL を提供するたびに認証マネージャーを設定する必要があることです。明らかに、セッションにユーザー名とパスワードを保存したくないので、セッションに authManager オブジェクトを保持することが安全かどうかわかりません。
セキュリティの観点から安全な認証方法を教えてください。