gpt4 book ai didi

java - 如何在登录表单中添加spring security

转载 作者:行者123 更新时间:2023-12-01 12:35:26 34 4
gpt4 key购买 nike

我有一个包含电子邮件地址和密码的登录页面。我如何使用 spring security 进行安全登录。我不明白该怎么做..?在我的网络应用程序中,第一页是带有用户电子邮件和密码的登录页面。

这是我的jsp页面

<form:form action="/pname/signin" modelAttribute="user"  method="post" id="form" >
<form:input path="userEmailId" placeholder="User Name" />
<form:password path="userPassword" placeholder="Password" />
<a href="signin" class="anchorStyle"><input type="submit" value="signin"/> </a>
</form:form>

这是我的 spring-security.xml

 <http auto-config="true">  
<intercept-url pattern="/**" access="ROLE_ADMIN" />
<logout logout-success-url="/signin?logout" />
</http>

<authentication-manager>
<authentication-provider>
<user-service>
<user name="user" password="password" authorities="ROLE_ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>

请告诉我我的错误在哪里。此外,成功登录后,它应该进入 hello 页面。

最佳答案

This tutorial ,和this tutorial可以帮你。您基本上定义了要在后台检查的必要信息,例如 .xml 文件中的 userEmail 和 userPassword。

之后,在您的 .jsp 文件中,您将 url 值指定为 j_spring_security_check,以将您的密码与电子邮件参数以及 >授权,查看该用户是否有权打开您在网络应用程序中提供的某些页面。

请参阅此示例以启发您:这是 .jsp View 页面:

<c:if test="${not empty msg}">
<div class="msg">${msg}</div>
</c:if>
<form name="loginForm" action="<c:url value="/j_spring_security_check"/> " method="post">
<c:if test="${not empty error}">
<div class="error" style="color: #ff0000;">${error}</div>
</c:if>
<div class="form-group">
<label for="userEmail">E-Posta</label>
<input id="userEmail" type="email" class="form-control" name="userEmail" placeholder="E-Mail Here!" required>
</div>

<div class="form-group">
<label for="userPassword">Şifre</label>
<input id="userPassword" type="password" class="form-control" name="userPassword" placeholder="Give me your Password!" required>
</div>

<div class="form-group">
<button type="submit" class="btn btn-send-message pull-right">GİRİŞ</button>
</div>

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
</form>

这是security.xml文件:

<security:http auto-config="true">
<security:intercept-url pattern="/addPost/**" access="ROLE_USER"/>
<security:form-login
login-page="/login"
default-target-url="/addPost/"
authentication-failure-url="/login?error"
username-parameter="userEmail"
password-parameter="userPassword" />
<security:logout logout-success-url="/login?logout" />
</security:http>

<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service data-source-ref="dataSource"
authorities-by-username-query="SELECT userEmail, authority FROM AUTHORITIES WHERE userEmail = ?"
users-by-username-query="SELECT userEmail, userPassword, isActive FROM USERS WHERE userEmail = ?"
/>
</security:authentication-provider>
</security:authentication-manager>

据我从您的代码中看到,您没有添加任何 j_spring_security_check 作为值 .jsp View 。所以你的代码不知道去哪里匹配凭证。而且我相信您也应该将 form-login 添加到您的 .xml 文件中,以便为您的登录过程提供指导。

希望这对您有帮助。

关于java - 如何在登录表单中添加spring security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25641043/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com