Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 引导模式作为spring security的登录页面_Spring Mvc_Login_Spring Security_Modal Dialog_Thymeleaf - Fatal编程技术网

Spring mvc 引导模式作为spring security的登录页面

Spring mvc 引导模式作为spring security的登录页面,spring-mvc,login,spring-security,modal-dialog,thymeleaf,Spring Mvc,Login,Spring Security,Modal Dialog,Thymeleaf,在我的web应用程序中,当单击标题中的登录图标时,我会将登录/注册部分作为引导模式显示。我试图在spring security中配置此功能,但我发现我必须在config方法中返回一个页面: @Override protected void configure(HttpSecurity http) throws Exception { http .formLogin().loginPage("/login") .and() ... } 我的

在我的web应用程序中,当单击标题中的登录图标时,我会将登录/注册部分作为引导模式显示。我试图在spring security中配置此功能,但我发现我必须在config方法中返回一个页面:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .formLogin().loginPage("/login")
        .and()
        ...
}
我的问题是如何正确地实现登录页面而不是完整的html页面的模式。我将SpringMVC4与SpringSecurity4和thymeleaf一起使用

在html页面的“我的标题”中:

<div class="col-xs-7 col-sm-4">
    <div class="top-social-last top-dark pull-right"
         data-toggle="tooltip" data-placement="bottom"
         title="Login/Register">
        <a class="top-icon-circle" href="#login-modal"
           data-toggle="modal">
            <i class="fa fa-lock"></i>
        </a>
    </div>
    <!-- social icons -->
</div>

这个头和模态实现作为一个片段共享,该片段包含在所有页面中(模态的代码很长,所以我没有复制到这里)

现在有一些请求需要登录,所以我必须在安全配置中添加一个登录页面,这些请求应该被重定向到该页面,但我没有页面,我只有一个在所有页面之间作为片段共享的模式。我认为我做得不对,所以如果有人能告诉我如何在SpringSecurity中使用modals


例如,在airbnb站点中,如果您希望喜欢广告而不登录,则会弹出一个模式,而不是重定向到页面。

您必须在引导中创建登录模式,并在有人单击登录按钮时显示该模式。您的登录模式应该在
标记中包含标准登录表单。单击“提交”按钮后,表单应将用户重定向到
th:action=“@{/j_-spring\u-security\u-check}”
仅此而已

1.您需要一个spring安全登录的自定义实现FilterChainProxy,并且您必须在每个页面中放置此模式,我会将其放置在页脚部分或页眉部分,因为您已经在片段中放置了此模式

2.当访问安全url时,检查主体会话(如果此请求不在会话中),如果是ajax请求,则可以返回错误代码。如果不是ajax请求,则需要过滤器并重定向到页面,然后将其发送到身份验证管理器,您可以在页面加载时显示模式


你需要的是一个预授权过滤器来实现这一点。看看下面的链接

你能告诉我们到目前为止你尝试了什么吗?你能发布一些关于你在实现它时面临的问题的代码吗?是的,这不是一个问题。。但是在SpringSecurity中,我想截获某些需要登录的请求,并将用户重定向到此模式。。但是安全配置需要一个页面,而不是模态。。那么我该怎么做呢(例如,在airbnb网站中,如果您想要一个广告而不是登录,则会弹出一个模式,而不是重定向到某个页面),以便在有人进入时打开模型,例如
http://domain.com/need-login-to-view
?不是重定向到登录页面,是吗?没错。。只是一个模式,而不是页面,所以您应该重定向到例如您的主页,并传入要显示模式的参数
loginPage(“/?needLogin=1”)
并显示模式如果有参数
needLogin=1
我可以重定向到当前页面吗?我不希望用户转到其他页面?在spring安全配置中是否可能?