0

タイル構成で定義されたページにリダイレクトする方法を理解するのに苦労しています。

Spring Security 4 を注釈とタイル 3 と共に使用する。

以下は機能しますが、タイル構成で定義されたページにCustomSuccessHandler解決されません。targetUrl

@Component
public class CustomSuccessHandler extends SimpleUrlAuthenticationSuccessHandler{

private RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();


@Override
protected void handle(HttpServletRequest request, 
  HttpServletResponse response, Authentication authentication) throws IOException {
    String targetUrl = determineTargetUrl(authentication);

    if (response.isCommitted()) {
        System.out.println("Can't redirect");
        return;
    }
    test();
    redirectStrategy.sendRedirect(request, response, targetUrl);
}
static void test() {

}

protected String determineTargetUrl(Authentication authentication) {
    String url="";

    Collection<? extends GrantedAuthority> authorities =  authentication.getAuthorities();

    List<String> roles = new ArrayList<String>();

    for (GrantedAuthority a : authorities) {
        roles.add(a.getAuthority());
    }

    if (isAdmin(roles)) {
        url = "/admin";
    } else if (isUser(roles)) {
        url = "/user";
    } else {
        url="accessDenied";
    }

    return url;
}
4

1 に答える 1

0

いつものように、私の問題は自傷行為であることがわかりました。上記の「admin」または「user」を、views.xml (タイル構成) ファイルで定義するのを怠っていました。views.xml でページを構成すると、期待どおりに動作し始めました。ありがとう!

于 2016-04-30T16:02:13.627 に答える