1

Authenticator クラスを持つ Web サービス クライアントがあります。Authenticator にはユーザー名/パスワードが必要です。Spring を使用して資格情報を注入する方法についてのヘルプを探しています。

ユーザー/パスをオーセンティケーターまたはオーセンティケーターをインスタンス化しているクライアントに注入する必要があります。

私はSpringが初めてなので、具体的な例をいただければ幸いです。

2 つのコンポーネントは次のようになります。

@Controller
    public class WSClient {
        @Autowired
        MyAuthenticator myAuthenticator;
    }
}

資格証明を持つオーセンティケータ:

public class MyAuthenticator extends Authenticator {
    private final String userName;
    private final String passWord;

    public MyAuthenticator(String userName, String passWord) {
        this.userName = userName;
        this.passWord = passWord;
    }

    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(this.userName, this.passWord.toCharArray());
    }
}
4

1 に答える 1

1

Bean@Valueにユーザー名/パスワードを設定するために使用しますAuthentication

@Component
public class MyAuthenticator extends Authenticator {
    @Value("${credentials.username}")
    private final String userName;
    @Value("${credentials.password}")
    private final String passWord;

    public MyAuthenticator(String userName, String passWord) {
        this.userName = userName;
        this.passWord = passWord;
    }

    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(this.userName, this.passWord.toCharArray());
    }
}

そしてXMLファイルで

追加

<util:properties id="credentials" location="classpath:credentials.properties"/>

credentials.propertiesそしてクラスパスに入れます

于 2012-07-02T13:15:34.053 に答える