点击项目 -> new -> Module
![](https://img-blog.csdnimg.cn/direct/c30113d7cc374ba8bd5fe86d431296d3.png)
选择maven模式
![](https://img-blog.csdnimg.cn/direct/03987afd0fb64fe3bdc68ff66084eb31.png)
![## 填写子模块的名称](https://img-blog.csdnimg.cn/direct/479becde277e468a923e101e72faa9f7.png)
构建完成
子项目默认会加入到父项目maven控制
![](https://img-blog.csdnimg.cn/direct/b6d32fbe69e24dd7a8d94e7179009b29.png)
在 父项目 pom文件中 dependencyManagement 标签内加入一下代码
新建子模块的名称
<!-- 测试-->
<dependency>
<groupId>com.safety</groupId>
<artifactId>safety-demo</artifactId>
<version>${safety.version}</version>
</dependency>
在admin 模块中的 pom文件中 dependencies 标签内加入
<!-- 测试-->
<dependency>
<groupId>com.safety</groupId>
<artifactId>safety-demo</artifactId>
</dependency>
新建子模块的pom文件中需要加入的代码 "safety" 跟随自己项目 进行修改
<dependencies>
<!-- 核心模块-->
<dependency>
<groupId>com.safety</groupId>
<artifactId>safety-framework</artifactId>
</dependency>
<!-- 通用工具-->
<dependency>
<groupId>com.safety</groupId>
<artifactId>safety-common</artifactId>
<version>${safety.version}</version>
</dependency>
</dependencies>
测试
默认包只到java(蓝色文件夹)层,下面的包需要自行创建
![](https://img-blog.csdnimg.cn/direct/84ba5034e31044dbb18200b52e5c117e.png)
认证失败
该段代码在浏览器请求时会报
![](https://img-blog.csdnimg.cn/direct/74fd883a66394494b1cee3e4a2595338.png)
在项目中对"认证失败,无法访问系统资源"文字进行全局搜索会找到
”AuthenticationEntryPointImpl.java 注释:认证失败处理类 返回未授权 “
未授权是因为该接口没有在权限框架放行,下面就看下如何找到权限框架的配置类并放行
@Component
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable {
private static final long serialVersionUID = -8970718410437077606L;
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e)
throws IOException {
int code = HttpStatus.UNAUTHORIZED;
String msg = StringUtils.format("请求访问:{},认证失败,无法访问系统资源", request.getRequestURI());
ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(code, msg)));
}
}
放行接口
根据下图指示 AuthenticationEntryPointImpl.java 被 SecurityConfig.java 引入了,
所以找到 SecurityConfig 它是 springSecurity(安全认证框架) 的配置类
AuthenticationEntryPointImpl 为 认证失败处理类
![](https://img-blog.csdnimg.cn/direct/7312bee36474439f889af47f6711e760.png)
/**
* 认证失败处理类
*/
@Autowired
private AuthenticationEntryPointImpl unauthorizedHandler;
// 认证失败处理类
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
![](https://img-blog.csdnimg.cn/direct/faa6900cb8a841dab1e9c4ef89176236.png)
加入需要放行的地址即可,修改代码后需要重新启动
.antMatchers("/swagger-ui.html",
"/swagger-resources/**",
"/webjars/**",
"/*/api-docs",
"/druid/**",
"/demo/test/get").permitAll()
测试完成
![](https://img-blog.csdnimg.cn/direct/4004c63790854d6aa6c101db31125550.png)