如果您对java.net.URLEncoder.encode(String)已弃用,我应该改用什么?和java.net.urldecoder.decode感兴趣,那么这篇文章一定是您不可错过的。我们将
如果您对java.net.URLEncoder.encode(String) 已弃用,我应该改用什么?和java.net.urldecoder.decode感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解java.net.URLEncoder.encode(String) 已弃用,我应该改用什么?的各种细节,并对java.net.urldecoder.decode进行深入的分析,此外还有关于Java Spring Security – User.withDefaultPasswordEncoder()已弃用?、java.net.URLEncoder.encode(String)已过时,应该使用什么代替?、java.net.URLEncode编码 与 URLDecode解码问题、javascript - encodeURI和encodeURIComponent的区别的实用技巧。
本文目录一览:- java.net.URLEncoder.encode(String) 已弃用,我应该改用什么?(java.net.urldecoder.decode)
- Java Spring Security – User.withDefaultPasswordEncoder()已弃用?
- java.net.URLEncoder.encode(String)已过时,应该使用什么代替?
- java.net.URLEncode编码 与 URLDecode解码问题
- javascript - encodeURI和encodeURIComponent的区别
java.net.URLEncoder.encode(String) 已弃用,我应该改用什么?(java.net.urldecoder.decode)
使用时收到以下警告java.net.URLEncoder.encode
:
警告:[弃用] 编码(java.lang.String) 在 java.net.URLEncoder 已被弃用
我应该改用什么?
答案1
小编典典使用URLEncoder中的其他encode
方法:
URLEncoder.encode(String, String)
第一个参数是要编码的文本;第二个是要使用的字符编码的名称(例如,UTF-8
)。例如:
System.out.println( URLEncoder.encode( "urlParameterString", java.nio.charset.StandardCharsets.UTF_8.toString() ));
Java Spring Security – User.withDefaultPasswordEncoder()已弃用?
我是java spring security的新手,并且遵循Spring.io tutorial guide.
作为其中的一部分,我根据需要编辑了WebSecurityConfig类:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/","/home").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Bean
@Override
public UserDetailsService userDetailsService() {
UserDetails user =
User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
}
在userDetailService()方法中,它使用withDefaultPasswordEncoder(),现在已弃用,如文档中所示:withDefaultPasswordEncoder()
不幸的是,我没有找到替代方案,在不使用弃用方法的情况下完成本教程.
如果可能,有人能为此提供替代方案吗?
谢谢!
注意:我附上了几个错误的屏幕截图,以及我的gradle文件
image 1: The error I am receiving
image 2: My gradle file
User.withDefaultPasswordEncoder()仍然可以用于演示,你不必担心这是你正在做什么 – 即使它已被弃用 – 但在生产中,你的源代码中不应该有纯文本密码.
您应该做什么而不是使用当前的userDetailsService()方法是following:
private static final String ENCODED_PASSWORD = "$2a$10$AIUufK8g6EFhBcumRRV2L.AQNz3Bjp7oDQVFiO5JJMBFZQ6x2/R/2";
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(passwordEncoder())
.withUser("user").password(ENCODED_PASSWORD).roles("USER");
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
其中ENCODED_PASSWORD是用BCrypt编码的secret123.你也可以像下面这样编程编码:passwordEncoder().encode(“secret123”).
这样,即使您将代码推送到公共存储库,人们也不会知道密码,因为ENCODED_PASSWORD只显示密码的编码版本而不是纯文本版本,但是因为您知道$2a $10 $AIUufK8g6EFhBcumRRV2L.AQNz3Bjp7oDQVFiO5JJMBFZQ6x2 / R / 2实际上是字符串secret123的编码密码,而其他人没有,您的内存用户凭证用户:secret123将不会受到损害.
请注意,为了示例,我将其保留在静态变量中.
java.net.URLEncoder.encode(String)已过时,应该使用什么代替?
使用时收到以下警告java.net.URLEncoder.encode
:
警告:[不建议使用] encoding(java.lang.String)
在java.net.URLEncoder中已弃用
我应该改用什么?
java.net.URLEncode编码 与 URLDecode解码问题
String mytext = java.net.URLEncoder.encode("中国", "utf-8");
String mytext2 = java.net.URLDecoder.decode(mytext, "utf-8");
这两条语句在同一个页面中的话,得到的结果是:
mytext: %E4%B8%AD%E5%9B%BD
mytex2: 中国
String zhongguo=new String(request.getParameter("zhongguo").getBytes("iso8859_1"));
zhongguo=java.net.URLDecoder.decode(zhongguo,"utf-8");
javascript - encodeURI和encodeURIComponent的区别
这两个函数功能上面比较接近,但是有一些区别。
- encodeURI:不会进行编码的字符有82个 :!,#,$,&,'',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
- encodeURIComponent:不会进行编码的字符有71个:!, '',(,),*,-,.,_,~,0-9,a-z,A-Z
从上面的说明中我们可以看出来encodeURIComponent编码更很一些,被编码后的字符都变成%xx这样的16进制形式。
从使用的角度来说:
encodeURI主要用于直接赋值给地址栏时候:
location.href=encodeURI("http://huangjacky.com/");
而encodeURIComponent主要用于url的query参数:
location.href="http://huangjacky.com/test.php?a="+encodeURIComponent("我就是我");
大致就是这样了。
这个时候你肯定要说还有个escape函数。
关于escape我要说两点:
- ECMAScript 3中已经不提倡使用这个函数了,所以我们还是少用吧。
- escape不会编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
今天关于java.net.URLEncoder.encode(String) 已弃用,我应该改用什么?和java.net.urldecoder.decode的讲解已经结束,谢谢您的阅读,如果想了解更多关于Java Spring Security – User.withDefaultPasswordEncoder()已弃用?、java.net.URLEncoder.encode(String)已过时,应该使用什么代替?、java.net.URLEncode编码 与 URLDecode解码问题、javascript - encodeURI和encodeURIComponent的区别的相关知识,请在本站搜索。
本文标签: