点击项目 -> new -> Module
选择maven模式
构建完成
子项目默认会加入到父项目maven控制
在 父项目 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(蓝色文件夹)层,下面的包需要自行创建
认证失败
该段代码在浏览器请求时会报
在项目中对"认证失败,无法访问系统资源"文字进行全局搜索会找到
”AuthenticationEntryPointImpl.java 注释:认证失败处理类 返回未授权 “
未授权是因为该接口没有在权限框架放行,下面就看下如何找到权限框架的配置类并放行
@Component
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable {private static final long serialVersionUID = -8970718410437077606L;@Overridepublic 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 为 认证失败处理类
/** * 认证失败处理类*/
@Autowired
private AuthenticationEntryPointImpl unauthorizedHandler;
// 认证失败处理类
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
加入需要放行的地址即可,修改代码后需要重新启动
.antMatchers("/swagger-ui.html","/swagger-resources/**",
"/webjars/**","/*/api-docs",
"/druid/**",
"/demo/test/get").permitAll()
测试完成