我是春天新手。我们正在为我们的客户构建一个移动应用程序。移动应用程序将与我们的休息服务进行交互。但最初,用户应该登录移动应用程序,然后才能访问其他服务。
我已经构建了一个Login服务,它将使用ldap验证用户凭据并创建会话,并且可以使用对其他服务的后续请求。 但是,如果匿名请求服务,则需要返回特定的响应对象。
目前,配置如下,我可以返回响应代码403.
<beans:bean id="preAuthenticatedProcessingFilterEntryPoint"
class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint" />
<security:http use-expressions="true" entry-point-ref="preAuthenticatedProcessingFilterEntryPoint">
<security:intercept-url pattern="/scheduling/**" access="isAuthenticated()" />
</security:http>
但是在响应正文中回复错误消息需要什么。 我尝试在EntryPoints中实现重定向url。但我不满意,因为请求不应该被重定向。
我有一个默认错误响应,如果匿名用户尝试访问服务,我需要实现它
<ErrorInfo>
<message>Access Denied</message>
<status>403</status>
<url>requested URL</url>
</ErrorInfo>
答案 0 :(得分:0)
如果我做对了,你想调整当前未经身份验证访问时返回的响应。在这种情况下,您需要实现并注册自己的AuthenticationEntryPoint
或扩展当前使用的Http403ForbiddenEntryPoint
并覆盖commence
方法以返回包含所需主体的响应。
<beans:bean id="yourCustomEntryPoint" class="com.example.YourCustomEntryPoint" />
<security:http use-expressions="true" entry-point-ref="yourCustomEntryPoint">
<security:intercept-url pattern="/scheduling/**" access="isAuthenticated()" />
</security:http>