我正在检查字符串是否加密,然后显示消息,但其抛出的HTTP Status 500 – Internal Server Error如下所示:
org.jasypt.exceptions.EncryptionOperationNotPossibleException
org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1055)
org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:725)
parvaz.aero.commons.security.Encryptor.decrypt(Encryptor.java:64)
parvaz.aero.registration.staff.reset.ResetPassword.doGet(ResetPassword.java:34)
javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)下面是我检查字符串是否加密的方法
public static boolean isStringEncrypted(String str) {
try {
decrypt(str);
return false;
}catch(Exception e) {
return true;
}
}在这里,如果字符串没有解密,我将尝试显示我的消息。
if(!isTokenNull) {
String resetTokenEmail = Encryptor.decrypt(resetToken);
boolean isEmailEncrypted = Encryptor.isStringEncrypted(resetTokenEmail);
if(isEmailEncrypted) {
String form = ChangePasswordForm.displayForm(resetToken,"","");
out.println(SiteTemplate.webPage(form));
}
else {
out.println(SiteTemplate.webPage(Message.getExpired()));
}
}
else {
out.println(SiteTemplate.webPage(Message.getExpired()));
}尽管向Message.getExpired()展示了其抛出HTTP Status 500 – Internal Server Error的原因
发布于 2021-05-10 17:15:26
我发现在以下情况下引发此错误:
Encrypted
String在加密或解密时有空白。所以str.replaceAll(" ", "+");和str.replaceAll("+", " ");解决了这个问题https://stackoverflow.com/questions/67306942
复制相似问题