我正在使用 Spring 构建一个 WebApp。它由 Spring Security 保护,也应该从 Android 应用程序访问。在网络版中,我使用的是基本登录页面。
要从 Android 进行身份验证,我计划使用凭据向标准身份验证 url /j_spring_security_check 发送一个 http 请求。然后总是在每个新请求中发送 cookie 以保持身份验证。
因为整个 WebApp 只能由登录用户访问,所以每次启动 Session 时都需要登录。我尝试通过一个简单的 html 公式发送描述的请求:
<html>
<head><title>Test</title></head>
<body>
<form action="http://localhost:8080/livefeedback/j_spring_security_check" method="post">
<input type="text", name="j_username" /><br />
<input type="password" name="jpassword" /><br />
<input type="submit" />
</form>
</body>
</html>
为了清楚起见:我想从 android 应用程序发送一个 http 请求,类似于通过发送此 html 表单生成的请求。
但我只是被重定向到我的标准登录页面。我认为这是因为我必须在尝试登录之前从 spring 接收会话 ID。而且我不确定是否有更好的方式从安卓应用程序登录。
这是我在 spring-security.xml 中的 http 配置:
<http use-expressions="true" auto-config="true">
<intercept-url pattern="/login"
access="permitAll"/>
<access-denied-handler />
<form-login login-page="/login" default-target-url="/"/>
<logout />
</http>
感谢您对每一个提示的期待!