当我从 JWT 令牌获取一些声明来验证用户身份验证时,出现以下错误:
Illegal base64url character: ' '
Run Code Online (Sandbox Code Playgroud)
创建 JWT 完全没问题,但“解码”似乎有一些问题...我还尝试使用 base64url 解码器在获取声明之前解码令牌,但令牌无效。
我对令牌进行编码和“解码”的 JWToken 类:
@Component
public class JWToken {
private static final String JWT_USERNAME_CLAIM = "sub";
private static final String JWT_ADMIN_CLAIM = "admin";
@Value("${jwt.issuer}")
private String issuer;
@Value("${jwt.passPhrase}")
private String passPhrase;
@Value("${jwt.duration-of-validity}")
private int expiration;
public String encode(String name, boolean admin) {
String token = Jwts.builder()
.claim(JWT_USERNAME_CLAIM, name)
.claim(JWT_ADMIN_CLAIM, admin)
.setSubject(name)
.setIssuer(issuer)
.setIssuedAt(new Date(System.currentTimeMillis()))
.setExpiration(new Date(System.currentTimeMillis() + expiration * 1000))
.signWith(SignatureAlgorithm.HS512, passPhrase).compact();
return token;
}
//for retrieving any …Run Code Online (Sandbox Code Playgroud) 我为所有来源和标题启用了 cors,但是当我get从我的 angular 应用程序调用一个方法到 spring boot时,我仍然收到 cors 错误。
来自控制台的 Cors 错误:
Access to XMLHttpRequest at 'http://localhost:8080/api/users/test@ronny.nl' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)
我的controller(我打电话给 getbyemail):
@CrossOrigin(origins = "*", allowedHeaders = "*")
@RestController
@RequestMapping(value = "/api/users", produces = MediaType.APPLICATION_JSON_VALUE)
public class UserController {
private final UserService userService;
@Autowired
public UserController(final UserService userService) {
this.userService = userService;
}
@GetMapping
public List<UserDTO> getAllUsers() {
return userService.findAll();
}
@GetMapping("/{id}") …Run Code Online (Sandbox Code Playgroud) 我正在使用React Native Paper 中的SnackBar,它显示在我的应用程序底部:
但我想在屏幕顶部显示这个小吃栏。我尝试使用样式组件来做到这一点:
export const ConfirmSnack = styled(Snackbar)`
top: 0;
`;
Run Code Online (Sandbox Code Playgroud)
但这并不能解决问题,即使添加时position: absolute;我已经阅读了文档但找不到任何有关定位小吃栏的内容。如何在屏幕顶部显示此信息栏?
我想测试一个比较对象中两个双精度值的compareTo 方法。
我想测试的方法:
public int compareTo(Participant other) {
return Double.compare(this.handicap, other.handicap);
}
Run Code Online (Sandbox Code Playgroud)
此方法比较让分双倍值(例如从 -1.0 到 5)。物体:
public Participant(String naam, double handicap, String thuisbaan) {
this.naam = naam;
this.handicap = handicap;
this.thuisbaan = thuisbaan;
}
Run Code Online (Sandbox Code Playgroud)
我想为此创建一个测试方法,但不知道如何......
我正在尝试在 Java 中创建一个方法来验证荷兰邮政编码。荷兰邮政编码由 6 个字符组成,其中包含 4 个数字(前 4 个字符)和 2 个字母(后 2 个字符),例如 1010AB。
我做了一个布尔值,如果邮政编码不在标准范围内,则返回 false,如果是,则返回 true。我一直在检查最后两个字母。
我已经为前 4 个数字创建了一个循环,但我不知道如何从这里进一步检查字母。
我的java方法:
public static boolean checkPostcode(String postCode) {
boolean value = false;
if (postCode.length() == lengthPost) {
for (int i = 0; i < postCode.length(); i++) {
if (i <= 4) {
if (Character.isDigit(postCode.charAt(i)) {
value = true;
else{
if (Character.isLetter(postCode.charAt(i))) {
value = true;
}
}
}
}
}
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
你面包车忽略最后一个 else,因为那是我卡住的地方....
如果有人可以帮助我,那就太好了!!
提前致谢