java创建文件夹的4种方法及其优缺点(io基础),SpringSecurity如何实现加密和解码
在Java中创建文件夹主要使用File
类的mkdir()
和mkdirs()
方法。
mkdir()
方法:- 只能创建一级目录,如果上级目录不存在,则会抛出
IOException
。 - 优点是创建速度较快。
- 缺点是必须确保上级目录存在。
- 只能创建一级目录,如果上级目录不存在,则会抛出
mkdirs()
方法:- 可以创建多级目录,如果上级目录不存在,一并创建。
- 优点是可以一并创建不存在的上级目录。
- 缺点是创建速度相对较慢。
示例代码:
File dir1 = new File("mydir");
if (!dir1.exists()) {
// 单级目录创建,不推荐,需要确保上级目录存在
dir1.mkdir();
}
File dir2 = new File("mydir/subdir");
if (!dir2.exists()) {
// 多级目录创建,推荐
dir2.mkdirs();
}
Spring Security 加密和解密通常使用DelegatingFilterProxy
来实现。你需要配置一个安全过滤器链,并在Spring Security配置中定义加密和解密的方法。
以下是Spring Security中加密和解密的简化示例:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ... 其他配置 ...
.addFilterBefore(securityFilter(), LogoutFilter.class);
}
private Filter securityFilter() throws Exception {
DelegatingFilterProxy proxy = new DelegatingFilterProxy("securityFilterChain");
proxy.setTargetFilterLifecycle(true);
proxy.setContextAttribute("org.springframework.web.servlet.FrameworkServlet.CONTEXT.dispatcherServlet");
return proxy;
}
@Bean(name = "securityFilterChain")
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
// ... 其他配置 ...
.csrf().disable() // 禁用CSRF保护
.authorizeRequests()
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.anyRequest().authenticated()
.and()
.addFilter(new CustomUsernamePasswordAuthenticationFilter(authenticationManagerBean())) // 自定义认证过滤器
.formLogin();
return http.build();
}
// 自定义认证过滤器示例
public class CustomUsernamePasswordAuthenticationFilter extends UsernamePasswordAuthenticationFilter {
public CustomUsernamePasswordAuthenticationFilter(AuthenticationManager authenticationManager) {
super(authenticationManager);
}
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse resp
评论已关闭