春季4安全+磁贴

时间:2018-09-11 15:51:41

标签: spring-mvc spring-security tiles

我有Spring 4 + Tiles WebApp,现在我想实现Spring安全性。

启动Webapp时,显示的第一页是登录页面。该页面的图块配置为:

<definition name="home" template="/WEB-INF/views/pages/index.jsp"></definition>

很明显,我想创建一个自定义的登录表单,但是我不知道在以下配置内的 form-login 标记中插入哪个链接:

<http auto-config="true" >
    <intercept-url pattern="/" access="permitAll" />
    <intercept-url pattern="/home" access="permitAll" />
    <intercept-url pattern="/admin**" access="hasRole('ADMIN')" />
    <intercept-url pattern="/dba**" access="hasRole('ADMIN') and hasRole('DBA')" />
    <form-login login-page="/?" username-parameter="ssoId" password-parameter="password" authentication-failure-url="/Access_Denied" />
    <csrf/>
</http>

也许我可以拦截使用控制器启动的第一页,然后返回正确的视图?这样的事情(这是另一个项目的控制器,您可以在该项目中使用调用该控制器上方的按钮的方式访问登录页面)

@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView login(@RequestParam(value = "error", required = false) String error, @RequestParam(value = "logout", required = false) String logout) {
    ModelAndView model = new ModelAndView();
    if (error != null) {
        model.addObject("msg", Msg.LoginStatus.LOGIN_ERROR);
        model.setViewName("/login/login");
        return model;
    }
    if (logout != null) {
        model.setViewName("/login/login");
        model.setViewName("/home/home");
        return model;
    }
    model.setViewName("/login/login");
    return model;
}

是否可以做类似的事情?谢谢

0 个答案:

没有答案