当前位置: 首页 > 知识库问答 >
问题:

用户名在Spring Security 4中为空

龙昊焱
2023-03-14

我使用了spring security 3,我决定将其升级到spring security 4。当我这样做时,我会面临一个问题。问题是,当我从登录表单向自定义userDetailService发布用户名和密码时,用户名为空。

<form action="<c:url value='/j_spring_security_check' />"  
    method='POST' id="login-form1" class="smart-form client-form" enctype="multipart/form-data" >
.
.
.
<section>
    <label class="label">email</label>
    <label class="input"> <i class="icon-append fa fa-user"></i>
    <input type="text" name="username" id="username" data-parsley-trigger="change" required="">
    <b class="tooltip tooltip-top-right"><i class="fa fa-user txt-color-teal"></i> enter email</b></label>
</section>
<section>
    <label class="label">password</label>
    <label class="input"> <i class="icon-append fa fa-lock"></i>
    <input type="password" name="password" id="password">
    <b class="tooltip tooltip-top-right"><i class="fa fa-lock txt-color-teal"></i> password</b> </label>
    <div class="note">
        <a href="forgotpassword.html">forgot password</a>
    </div>
</section>

这是我的Spring保安。xml

    <security:intercept-url pattern="/view/login.jsp*" access="permitAll" />

    <security:intercept-url pattern="/view/**" access="hasRole('ROLE_USER')" />
    <security:intercept-url pattern="/rest/**" access="hasRole('ROLE_USER')" />
    <security:form-login login-page="/view/login.jsp"
                login-processing-url="/j_spring_security_check"
                default-target-url="/view/homepage.jsp"
                password-parameter="password"
                username-parameter="username"/>

共有1个答案

鲁涵意
2023-03-14

您的encType不正确。默认情况下,Spring不支持登录页面上的多部分请求。

  1. 如果您不需要多部分请求,只需将其删除即可
  2. 如果您想要多部分支持,那么您必须在web中添加多部分过滤器。xml文件。您需要配置Apache commons多部分解析器

请看一下这个spring security multipart

 类似资料:
  • 问题内容: 当我尝试通过JPA / hibernate持久保存一个名为“用户”的实体时,它将无法正常工作。该表未创建,原因是用户是postgresql中的保留字。除了给表命名以外,还有其他方法可以使此工作吗? 问题答案: 要引用标识符,请使用反勾号: 从Hibernate的测试套件中查看以下示例: https://github.com/hibernate/hibernate-orm/blob/ma

  • 问题内容: 我知道使用 命令可以获取用户名,但是如何在以下脚本中自动实现用户名?所以我想让python找到用户名,然后在以下脚本本身中实现它。 脚本: (正在使用Python版本2.7) 问题答案: 返回正在执行的用户,因此可以是: 或者,使用getpass.getuser() 如果我理解您的要求。

  • 问题内容: 如何获取Java中的用户名/登录名? 这是我尝试过的代码… 我在尝试运行此代码时得到提示。有人可以告诉我我是否朝着正确的方向前进,并帮助我理解问题。 问题答案:

  • 问题内容: PostgreSQL似乎不允许创建名为“ user”的数据库表。但是MySQL将允许创建这样的表。 那是因为这是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSQLDialect)。 问题答案: 是保留字,通常不建议使用保留字作为标识符(表,列)。 如果您坚持要这样做,则必须将表名放在双引号中: 但是,在引用表时,您 总是 需要使用双引号。此外,表名

  • 问题内容: 在Django中无需滚动我自己的身份验证系统,有什么好方法吗?我希望用户名是用户的电子邮件地址,而不是他们创建用户名。 问题答案: 这不是一个“完整”的解决方案,但可以满足你的大部分需求。

  • 本文向大家介绍我应该在MySQL表中将用户名字段命名为“ name”还是“ user_name”?,包括了我应该在MySQL表中将用户名字段命名为“ name”还是“ user_name”?的使用技巧和注意事项,需要的朋友参考一下 不要在表名前加上用户名之类的字段名。而是使用用户或用户名。 如果为表名加上前缀,则可能会有歧义,因此请避免为表名加上前缀。 让我们首先创建一个表- 使用插入命令在表中插