結局、私は自分でそれを理解しました:
カスタム認証システムが必要です
public class MyCustomAuthenticator extends DefaultAuthenticator {
protected boolean authenticate(Principal user, String password)
throws AuthenticatorException {
return true;
}
protected Principal getUser(String username) {
return getCrowdService().getUser(username);
}
private CrowdService getCrowdService() {
return (CrowdService)ComponentManager.getComponent(CrowdService.class);
}
}
MyCustomAuthenticator を seraph-config.xml に追加します
<authenticator class="com.company.jira.MyCustomAuthenticator"/>
http-header からユーザー名を設定するカスタム フィルターを作成します。
public class CustomFilter extends PasswordBasedLoginFilter {
@Override
protected UserPasswordPair extractUserPasswordPair(
HttpServletRequest request) {
String username = request.getHeader("iv-header");
if (username != null && username.trim().length() != 0) {
return new PasswordBasedLoginFilter.UserPasswordPair(
username, "DUMMY", false);
}
return null;
}
}
web.xml 内のフィルターを置き換えます
<filter>
<filter-name>login</filter-name>
<filter-class>com.company.jira.CustomFilter</filter-class>
</filter>
これらの jar は Jira 5.2 に必要です
- embedded-crowd-api-2.6.2
- jira-core-5.2.1
- atlassian-seraph-2.6.0
于 2013-05-22T07:23:19.713 に答える