我正在尝试从Spring安全性登录页面将数据库名称设置为请求输入参数。目前,我只获得使用spring security检索到的用户名SecurityContextHolder.getContext().getAuthentication()
。
如何访问在登录页面上设置的其他字段?
详细阐述@Vacuum的评论
这是一种简单的方法(未经测试,但我相信这会起作用)
1)创建一个新类ExUsernamePasswordAuthenticationFilter
,它将扩展默认过滤器并获取其他参数并将其存储在会话中。它看起来像这样:
public class ExUsernamePasswordAuthenticationFilter extends UsernamePasswordAuthenticationFilter {
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {
final String dbValue = request.getParameter("dbParam");
request.getSession().setAttribute("dbValue", dbValue);
return super.attemptAuthentication(request, response);
}
}
2)在你的UserDetailsService
实现中,修改你的实现:
UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException;
获取第1)步中的过滤器提供的会话变量。
3)在你的<http />
安全设置中,使用你的自定义过滤器覆盖默认过滤器
<custom-filter ref="beanForYourCustomFilterFromStep1" position="FORM_LOGIN_FILTER"/>
我正在尝试将数据库名称设置为Spring Security登录页面的请求输入参数。目前,我只获得使用Spring安全安全检索的用户名。 如何访问登录页面上设置的附加字段?
我正在做一个项目,其中为登录身份验证实现了Spring Security。现在,我们希望当用户登录时,它连接到哪个数据库取决于一个参数,即我在登录过程中传递的参数,并希望在页面上访问该参数home.jsp我的代码为: 1)登录页面url /登录 2)Spring表单登录为 3) 访问决策管理器类 网址为家.jsp /首页 有人能帮我吗?我如何将一个额外的参数从登录页面传递到主页。如果我在登录前进行
我希望我的这个登录页面加载两次,即第一次用户输入username和password,然后从servlet获得响应,然后它将被重定向到带有“messages”的登录jsp页面。 我有两个按钮用于登录和注销。这个脚本可以像我试过的那样通过使用count变量加载两次吗?任何其他方法也将是首选。 附注:我试过使用和但它们不起作用。 login.jsp:-
问题内容: 我有一个Maven项目,运行命令 mvn后,安装 所有项目以及模块编译并成功复制到本地存储库。但是现在我想在tomcat6中运行生成的Web应用程序。客户端为tomcat提供了一些参数,例如一旦项目启动,这些参数将在内部使用。但是我不知道如何在tomcat6中设置这些附加参数。下面是我的开发环境 操作系统= Windows Tomcat = Tomcat 6.0.27 请帮我? 问题答
我在stackoverflow周围搜索了一下,但没有找到一个合适的解决方案来以编程方式更改jqm页面并传递一个(get)参数。我是jqm的新手,所以可能我在使用change ePage()函数传递数据时出错了。 使用jquery mobile 1.1.1和jquery 1.8.0 我有一个列表,希望所有项目都指向相同的#配置文件页面。在该页面上,我想用ajax/json加载适当的数据。 第一个链接
在普通的web开发中,参数传递有这么几种形式: url: /another_page?id=3 表单: <form>...</form> 在vuejs中,不会产生表单的提交(这会引起页面的整体刷新). 所以有两种: url . 同传统语言. vuejs 内部的机制.(无法在url 中体现,可以认为是由js代码隐式实现的) 我们用一个实际的例子说明. 我们之前实现了 "博客列表页",接下来我们要实现