簡體   English   中英

由於彈簧安全性,@ Controller被忽略

[英]@Controller is ignored because of spring security

當我具有如下的spring安全設置時:

<http pattern="/ui/**" auto-config="true" authentication-manager-ref="authenticationManager">
        <intercept-url pattern="/ui/login*" access="isAnonymous() or hasRole('USER')" requires-channel="${web.channel}" />
        <intercept-url pattern="/ui/**" access="hasRole('USER')" requires-channel="${web.channel}" />

        <form-login login-page="/ui/login" login-processing-url="/ui/j_spring_security_check" default-target-url="/ui/dashboard" />
        <logout logout-url="/ui/logout" logout-success-url="/ui/login" />
</http>

我的控制器將被忽略,並且兩個方法都不會被調用。 我嘗試在它們兩個之間添加斷點,但是執行從未停止。 我還嘗試將System.out.println()添加到它們,並且沒有任何內容寫入系統輸出,因此,我很確定這兩種方法都未映射或從未被調用過。

@Controller
public class MyController {

    @RequestMapping(value = { "/ui", "/ui/login"}, method = GET)
    public String indexNoTrailingSlash() {
        return index();
    }

    @RequestMapping(value = "/", method = GET)
    public String index() {
        return "redirect:/ui/dashboard";
    }
}

安全性很好,並且感謝xml中的default-target-url =“ / ui / dashboard” ,成功登錄后我確實進入了儀表板頁面。 但是,我想實現的是,即使用戶已經登錄,也將其重定向到儀表板。我試圖遵循此答案 ,這就是我需要控制器的目的。 有沒有一種方法可以映射這些方法,以便我可以使用控制器進行重定向,也可以僅通過spring安全性以某種方式進行重定向?

謝謝 :)

如果您包括的答案鏈接正是您要尋找的,請針對您的情況執行以下操作。

return new ModelAndView("redirect:/"); 

它將重定向到您的index()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM