在最新的Spring Security教程-Spring Security实现访问控制教程中,如果没有授权的用户访问加密的页面,默认的403页面就会展示
在本次教程中,我们教你两种自定义Spring Security 默认的403页面的方法
1.使用access-denied-handler标签
最简单的方法就是使用access-denied-handler标签,在“error-page”设置你自己的403页面
1
2
3
4
|
< http auto-config = "true" >
< intercept-url pattern = "/admin*" access = "ROLE_ADMIN" />
< access-denied-handler error-page = "404" />
</ http >
|
2.实现AccessDeniedHandler类
第二种方法就是创建一个类并实现AccessDeniedHandler类,重写“handle()”方法,在里面设置你自己的访问逻辑
MyAccessDeniedHandler.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package com.mkyong.common.handler;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
public class MyAccessDeniedHandler implements AccessDeniedHandler {
private String accessDeniedUrl;
public MyAccessDeniedHandler() {
}
public MyAccessDeniedHandler(String accessDeniedUrl) {
this .accessDeniedUrl = accessDeniedUrl;
}
@Override
public void handle(HttpServletRequest request,
HttpServletResponse response,
AccessDeniedException accessDeniedException) throws IOException,
ServletException {
response.sendRedirect(accessDeniedUrl);
request.getSession().setAttribute( "message" ,
"You do not have permission to access this page!" );
}
public String getAccessDeniedUrl() {
return accessDeniedUrl;
}
public void setAccessDeniedUrl(String accessDeniedUrl) {
this .accessDeniedUrl = accessDeniedUrl;
}
} |
3.例子
下面假设是你自定义的403页面
403.jsp
1
2
3
4
5
6
|
< html >
< body >
< h1 >HTTP Status 403 - Access is denied</ h1 >
< h3 >Message : ${message}</ h3 >
</ body >
</ html >
|
现在假如没有权限的用户访问受保护的页面,你自定义的403页面就会展示:
原创文章,转载请注明出处:http://www.it161.com/article/javaDetail?articleid=140113232712
更多原创内容,请访问:http://www.it161.com/
相关推荐
在Spring Security中,默认使用的是BCryptPasswordEncoder或者PBEWithMD5AndDES等加密算法。但为了满足特定需求,我们可以自定义密码编码器。下面是如何实现的步骤: 1. **创建自定义PasswordEncoder**:你需要创建...
本资源“spring-security实现自定义登录认证.rar”包含了一个使用Spring Security进行登录认证的示例,以及JWT(JSON Web Tokens)与Spring Security集成的代码。 首先,让我们了解Spring Security的基本工作原理。...
AuthenticationProvider是Spring Security的核心组件之一,负责验证用户提供的凭证。我们可以在实现这个接口时,根据自己的业务逻辑去检查用户名和密码是否匹配,例如,连接到数据库进行查询。 接着,我们需要配置...
使用SpringSecurity默认的`User`类来创建`UserDetails`实例。`User`类是`UserDetails`的一个简单实现,其中可以包含用户名、密码和权限列表。权限列表是由`GrantedAuthority`对象组成的集合。可以通过`...
springsecurity(用spring ibatis freemaker)实现的用户自定义的权限管理页面, 里头包括数据库脚本 和原数据 和原代码 主要参考http://blog.csdn.net/k10509806/article/details/6369131 这个人的文章做的
"SpringSecurity学习之自定义过滤器的实现代码" Spring Security学习之自定义过滤器的实现代码主要介绍了Spring Security学习之自定义过滤器的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有...
在Spring Security框架中,自定义过滤器是实现特定安全需求的一种常见方式。Spring Security的核心功能是通过一系列的Filter链来处理HTTP请求,这些Filter包括认证、授权等关键操作。本篇我们将深入探讨如何在Spring...
### Spring Security 3.0 自定义表结构详解 在企业级应用开发中,Spring Security作为Spring框架的一个子项目,提供了一套完整的权限管理和安全性解决方案。它不仅能够处理身份验证(authentication)和授权...
这意味着在Spring Security的默认认证流程开始前,我们的自定义过滤器将先执行。 3. **集成Spring Security**:为了让自定义过滤器能与Spring Security的其他组件协同工作,我们可能需要设置一些属性,如`...
- 如果应用使用 JPA(Java Persistence API)作为数据访问技术,Spring Security 可以与之集成,通过 `UserDetailsService` 接口来查询用户信息和权限。 9. **摘要认证**: - 摘要认证是一种常见的身份验证方式,...
### Spring Security 中文教程知识点概览 #### 一、Spring Security简介 - **Spring Security**是一种全面的安全服务框架,主要用于基于J2EE的企业应用程序。它与Spring框架紧密结合,旨在简化安全性的实现,使得...
10. **自定义**:Spring Security的灵活性允许开发者根据需求创建自定义策略和组件,如自定义权限表达式、自定义认证和授权逻辑。 教程文档则可能深入到实践操作,包括如何配置Spring Security、创建第一个安全应用...
《Spring Security 3.1 实现验证码自定义登录详解》 在现代Web应用程序的安全管理中,Spring Security是一个不可或缺的框架,它提供了强大的访问控制和身份验证功能。在本文中,我们将深入探讨如何在Spring ...
本教程是基于Mossle平台整理的Spring Security入门资料,旨在帮助初学者快速掌握这一关键的安全技术。 首先,我们要理解Spring Security的核心概念。**认证**是验证用户身份的过程,通常涉及用户名和密码的输入。**...
在`SpringSecurity.md`和`SpringSecurity.pdf`文档中,可能包含SpringSecurity配置、自定义用户服务、授权策略等方面的代码示例。`codes`目录可能包含实际运行的项目代码,方便读者实践和理解。 8. **图笔记.draw...
自定义标签在Spring Security中扮演着重要角色,它们允许开发者在视图层(如JSP页面)轻松地应用安全控制。这通常通过使用Spring Security的JSP标签库来实现,例如`<sec:authorize>`,它可以判断当前用户是否有权限...
3. **定制Filter**:在Spring Cloud Gateway中,我们可以自定义WebFlux Filter,利用Spring Security提供的API进行认证和鉴权。这通常涉及到`@PreAuthorize`和`@Secured`等注解的使用,以控制对特定路由的访问权限。...
- 默认情况下,Spring Security 开启了跨站请求伪造(CSRF)防护,通过生成并验证CSRF令牌,防止恶意第三方发起未经授权的操作。 6. **表达式式语言**: - Spring Security 使用一种强大的表达式语言(EL),如`...
如果凭证无效,Spring Security会抛出`BadCredentialsException`,并显示默认的错误消息。 为了显示自定义的无效凭据错误消息,我们需要配置Spring Security的`AuthenticationFailureHandler`。这个处理器会在认证...