upgrade spring, add javadoc, formatting

This commit is contained in:
2022-04-13 16:38:23 +02:00
parent 8ebed47574
commit eb829bfa26
168 changed files with 1554 additions and 2020 deletions
+1
View File
@@ -26,6 +26,7 @@
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>9.21</version>
</dependency>
</dependencies>
</project>
@@ -117,8 +117,8 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
* @return the page
*/
public Page<JitsiRoom> get(int page, int size, String sortBy, boolean descending) {
return jitsiRoomRepository.findAll(PageRequest.of(page, size,
descending ? Sort.by(sortBy).descending() : Sort.by(sortBy).ascending()));
return jitsiRoomRepository.findAll(
PageRequest.of(page, size, descending ? Sort.by(sortBy).descending() : Sort.by(sortBy).ascending()));
}
/**
@@ -131,14 +131,13 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
* @param descending the descending
* @return the for user id
*/
public Page<JitsiRoom> getForUserId(Long userId, int page, int size, String sortBy,
boolean descending) {
public Page<JitsiRoom> getForUserId(Long userId, int page, int size, String sortBy, boolean descending) {
// delete expired rooms
jitsiRoomRepository.deleteAll(jitsiRoomRepository.findAll(
qJitsiRoom.owner.eq(userId).and(qJitsiRoom.expires.before(Instant.now()))));
jitsiRoomRepository.deleteAll(
jitsiRoomRepository.findAll(qJitsiRoom.owner.eq(userId).and(qJitsiRoom.expires.before(Instant.now()))));
return jitsiRoomRepository.findAll(qJitsiRoom.owner.eq(userId), PageRequest.of(page, size,
descending ? Sort.by(sortBy).descending() : Sort.by(sortBy).ascending()));
return jitsiRoomRepository.findAll(qJitsiRoom.owner.eq(userId),
PageRequest.of(page, size, descending ? Sort.by(sortBy).descending() : Sort.by(sortBy).ascending()));
}
/**
@@ -152,8 +151,8 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
* @return the jitsi room
* @throws JOSEException the JOSE exception
*/
public JitsiRoom create(Long owner, String room, Instant starts, Instant moderationStarts,
Instant expires) throws JOSEException {
public JitsiRoom create(Long owner, String room, Instant starts, Instant moderationStarts, Instant expires)
throws JOSEException {
JitsiRoom jitsiRoom = new JitsiRoom();
jitsiRoom.setOwner(owner);
jitsiRoom.setRoom(room);
@@ -190,8 +189,7 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
bodyBuilder.notBeforeTime(Date.from(jitsiRoom.getStarts()));
}
JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.HS256).type(JOSEObjectType.JWT)
.build();
JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.HS256).type(JOSEObjectType.JWT).build();
SignedJWT token = new SignedJWT(jwsHeader, bodyBuilder.build());
token.sign(signer);
@@ -206,15 +204,13 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
jitsiRoom.setModerationToken(moderationToken.serialize());
jitsiRoom.setUrl(String.format(urlFormat, jitsiRoom.getRoom(), jitsiRoom.getToken()));
jitsiRoom.setModerationUrl(
String.format(urlFormat, jitsiRoom.getRoom(), jitsiRoom.getModerationToken()));
jitsiRoom.setModerationUrl(String.format(urlFormat, jitsiRoom.getRoom(), jitsiRoom.getModerationToken()));
if (StringUtils.hasText(jitsiRoom.getCode())) {
ShortenedUrl shortenedUrl = shortenedUrlManager.get(jitsiRoom.getCode());
if (shortenedUrl != null) {
shortenedUrl.setUrl(jitsiRoom.getUrl());
shortenedUrl.setNote("JitsiRoom: "
+ jitsiRoom.getRoom());
shortenedUrl.setNote("JitsiRoom: " + jitsiRoom.getRoom());
shortenedUrl.setExpires(jitsiRoom.getExpires());
shortenedUrlManager.save(shortenedUrl);
jitsiRoom.setOrgUrl(jitsiRoom.getUrl());
@@ -234,10 +230,8 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
* @return the jitsi room
*/
public JitsiRoom createShortenedUrl(JitsiRoom jitsiRoom) {
ShortenedUrl shortenedUrl = shortenedUrlManager.create(jitsiRoom.getOwner(),
jitsiRoom.getUrl(), "JitsiRoom: "
+ jitsiRoom.getRoom(),
null, jitsiRoom.getExpires(), null, false, true);
ShortenedUrl shortenedUrl = shortenedUrlManager.create(jitsiRoom.getOwner(), jitsiRoom.getUrl(),
"JitsiRoom: " + jitsiRoom.getRoom(), null, jitsiRoom.getExpires(), null, false, true);
jitsiRoom.setOrgUrl(jitsiRoom.getUrl());
jitsiRoom.setCode(shortenedUrl.getCode());
jitsiRoom.setUrl(shortenedUrl.getLink());
@@ -254,8 +248,7 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
if (quota) {
Quota jitsiRoomsQuota = quotaManager.get(jitsiRoom.getOwner(), JitsiQuotas.JITSI_MEET);
if (jitsiRoomsQuota == null) {
jitsiRoomsQuota = quotaManager.create(jitsiRoom.getOwner(), JitsiQuotas.JITSI_MEET,
0, "#", true);
jitsiRoomsQuota = quotaManager.create(jitsiRoom.getOwner(), JitsiQuotas.JITSI_MEET, 0, "#", true);
}
jitsiRoomsQuota.setValue(jitsiRoomsQuota.getValue() + 1);
@@ -263,8 +256,8 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
}
if (StringUtils.hasText(jitsiRoom.getCode())) {
ShortenedUrl shortenedUrl = shortenedUrlRepository
.findOne(qShortenedUrl.code.eq(jitsiRoom.getCode())).orElse(null);
ShortenedUrl shortenedUrl = shortenedUrlRepository.findOne(qShortenedUrl.code.eq(jitsiRoom.getCode()))
.orElse(null);
if (shortenedUrl != null) {
if (quota) {
Quota shortenedUrlsQuota = quotaManager.get(shortenedUrl.getOwner(),
@@ -293,8 +286,7 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
* @param quota the quota
*/
public void deleteAll(Long owner, boolean quota) {
List<JitsiRoom> jitsiRooms = Lists
.newArrayList(jitsiRoomRepository.findAll(qJitsiRoom.owner.eq(owner)));
List<JitsiRoom> jitsiRooms = Lists.newArrayList(jitsiRoomRepository.findAll(qJitsiRoom.owner.eq(owner)));
for (JitsiRoom jitsiRoom : jitsiRooms) {
delete(jitsiRoom, quota);
@@ -336,7 +328,6 @@ public class JitsiRoomManager implements SmartInitializingSingleton, UserDataPro
*/
@Scheduled(cron = "0 */5 * * * *")
protected void clearExpiredRooms() {
jitsiRoomRepository
.deleteAll(jitsiRoomRepository.findAll(qJitsiRoom.expires.before(Instant.now())));
jitsiRoomRepository.deleteAll(jitsiRoomRepository.findAll(qJitsiRoom.expires.before(Instant.now())));
}
}
@@ -25,9 +25,9 @@ public class UrlShortenerSync implements ApplicationListener<AbstractModelEvent>
private JitsiRoomRepository jitsiRoomRepository;
private QJitsiRoom qJitsiRoom = QJitsiRoom.jitsiRoom;
/*
* @see org.springframework.context.ApplicationListener#onApplicationEvent(org.springframework.context.ApplicationEvent)
* @see org.springframework.context.ApplicationListener#onApplicationEvent(org.
* springframework.context.ApplicationEvent)
*/
@Override
public void onApplicationEvent(AbstractModelEvent event) {
@@ -35,8 +35,8 @@ public class UrlShortenerSync implements ApplicationListener<AbstractModelEvent>
if (AbstractModelEventType.PRE_REMOVE.equals(event.getType())) {
ShortenedUrl shortenedUrl = (ShortenedUrl) event.getModel();
JitsiRoom jitsiRoom = jitsiRoomRepository
.findOne(qJitsiRoom.code.eq(shortenedUrl.getCode())).orElse(null);
JitsiRoom jitsiRoom = jitsiRoomRepository.findOne(qJitsiRoom.code.eq(shortenedUrl.getCode()))
.orElse(null);
if (jitsiRoom != null) {
jitsiRoom.setUrl(jitsiRoom.getOrgUrl());
jitsiRoom.setCode(null);
@@ -45,8 +45,8 @@ public class UrlShortenerSync implements ApplicationListener<AbstractModelEvent>
}
} else if (AbstractModelEventType.POST_UPDATE.equals(event.getType())) {
ShortenedUrl shortenedUrl = (ShortenedUrl) event.getModel();
JitsiRoom jitsiRoom = jitsiRoomRepository
.findOne(qJitsiRoom.code.eq(shortenedUrl.getCode())).orElse(null);
JitsiRoom jitsiRoom = jitsiRoomRepository.findOne(qJitsiRoom.code.eq(shortenedUrl.getCode()))
.orElse(null);
if (jitsiRoom != null) {
if (!StringUtils.hasText(jitsiRoom.getOrgUrl())) {
jitsiRoom.setOrgUrl(jitsiRoom.getUrl());
@@ -65,16 +65,15 @@ public class JitsiRoomController extends BaseController {
@PreAuthorize("isAuthenticated()")
@GetMapping
public Page<JitsiRoom> getJitsiRooms(@RequestParam("page") Optional<Integer> pageParameter,
@RequestParam("size") Optional<Integer> sizeParameter,
@RequestParam("sort") Optional<String> sortParameter,
@RequestParam("size") Optional<Integer> sizeParameter, @RequestParam("sort") Optional<String> sortParameter,
@RequestParam("desc") Optional<Boolean> descParameter) {
if (!permissionManager.hasPermission(getCurrentUserId(), JitsiPermissions.JITSI_MEET)) {
jitsiRoomManager.deleteAll(getCurrentUserId(), false);
throw new EntityResponseStatusException(HttpStatus.FORBIDDEN);
}
return jitsiRoomManager.getForUserId(getCurrentUserId(), pageParameter.orElse(0),
sizeParameter.orElse(10), sortParameter.orElse("id"), descParameter.orElse(false));
return jitsiRoomManager.getForUserId(getCurrentUserId(), pageParameter.orElse(0), sizeParameter.orElse(10),
sortParameter.orElse("id"), descParameter.orElse(false));
}
/**
@@ -106,7 +105,7 @@ public class JitsiRoomController extends BaseController {
} else {
jitsiRoomValidator.validate(jitsiRoom, errors);
}
if (errors.hasErrors()) {
throw new EntityResponseStatusException(errors.getAllErrors(), HttpStatus.CONFLICT);
}
@@ -115,8 +114,8 @@ public class JitsiRoomController extends BaseController {
jitsiRoomsQuota = quotaManager.update(jitsiRoomsQuota);
try {
return jitsiRoomManager.create(jitsiRoom.getOwner(), jitsiRoom.getRoom(),
jitsiRoom.getStarts(), jitsiRoom.getModerationStarts(), jitsiRoom.getExpires());
return jitsiRoomManager.create(jitsiRoom.getOwner(), jitsiRoom.getRoom(), jitsiRoom.getStarts(),
jitsiRoom.getModerationStarts(), jitsiRoom.getExpires());
} catch (JOSEException e) {
jitsiRoomsQuota.setValue(jitsiRoomsQuota.getValue() - 1);
jitsiRoomsQuota = quotaManager.update(jitsiRoomsQuota);
@@ -182,14 +181,12 @@ public class JitsiRoomController extends BaseController {
throw new EntityResponseStatusException(HttpStatus.FORBIDDEN);
}
if (!permissionManager.hasPermission(getCurrentUserId(),
ShortenedUrlPermissions.URL_SHORTENER)
if (!permissionManager.hasPermission(getCurrentUserId(), ShortenedUrlPermissions.URL_SHORTENER)
|| !permissionManager.isFullUser(getCurrentUserId())) {
throw new EntityResponseStatusException(HttpStatus.FORBIDDEN);
}
Quota shortenedUrlsQuota = quotaManager.get(getCurrentUserId(),
ShortenedUrlQuotas.URL_SHORTENER);
Quota shortenedUrlsQuota = quotaManager.get(getCurrentUserId(), ShortenedUrlQuotas.URL_SHORTENER);
if (shortenedUrlsQuota == null || shortenedUrlsQuota.getValue() < 1) {
throw new EntityResponseStatusException(HttpStatus.FORBIDDEN);
}
@@ -80,13 +80,12 @@ public class JitsiRoomManagementController extends BaseController {
/**
* Delete jitsi room.
*
* @param id the id
* @param id the id
* @param quota the quota
*/
@PreAuthorize("hasRole('ROLE_ADMIN')")
@DeleteMapping("/{id}")
public void deleteJitsiRoom(@PathVariable("id") Long id,
@RequestParam("quota") Optional<Boolean> quota) {
public void deleteJitsiRoom(@PathVariable("id") Long id, @RequestParam("quota") Optional<Boolean> quota) {
JitsiRoom jitsiRoom = jitsiRoomManager.get(id);
if (jitsiRoom == null) {
@@ -104,8 +103,7 @@ public class JitsiRoomManagementController extends BaseController {
*/
@PreAuthorize("hasRole('ROLE_ADMIN')")
@DeleteMapping("/all/{owner}")
public void deleteAll(@PathVariable("owner") Long owner,
@RequestParam("quota") Optional<Boolean> quota) {
public void deleteAll(@PathVariable("owner") Long owner, @RequestParam("quota") Optional<Boolean> quota) {
jitsiRoomManager.deleteAll(owner, quota.isPresent() && quota.get().booleanValue());
}
@@ -67,9 +67,9 @@ public class JitsiRoomValidator implements Validator {
/**
* Validate.
*
* @param owner the owner
* @param owner the owner
* @param roomName the room name
* @param errors the errors
* @param errors the errors
*/
public void validate(Long owner, String roomName, Errors errors) {
if (owner == null) {
@@ -97,14 +97,12 @@ public class JitsiRoomValidator implements Validator {
* Validate room.
*
* @param roomName the room name
* @param errors the errors
* @param errors the errors
*/
public void validateRoom(String roomName, Errors errors) {
for (String systemRoomName : systemPropertyManager.get(RESERVED_JITSI_ROOMS, "")
.split(",")) {
if (StringUtils.hasText(systemRoomName)
&& (roomName.toLowerCase().equals(systemRoomName)
|| roomName.toLowerCase().matches(systemRoomName))) {
for (String systemRoomName : systemPropertyManager.get(RESERVED_JITSI_ROOMS, "").split(",")) {
if (StringUtils.hasText(systemRoomName) && (roomName.toLowerCase().equals(systemRoomName)
|| roomName.toLowerCase().matches(systemRoomName))) {
errors.rejectValue("room", "NOT_VALID");
return;
}
@@ -115,7 +113,7 @@ public class JitsiRoomValidator implements Validator {
* Validate expiry.
*
* @param jitsiRoom the jitsi room
* @param errors the errors
* @param errors the errors
*/
public void validateExpiry(JitsiRoom jitsiRoom, Errors errors) {
@@ -124,13 +122,11 @@ public class JitsiRoomValidator implements Validator {
}
if (jitsiRoom.getModerationStarts() != null) {
jitsiRoom.setModerationStarts(
InstantHelper.truncate(jitsiRoom.getModerationStarts(), ChronoUnit.SECONDS));
jitsiRoom.setModerationStarts(InstantHelper.truncate(jitsiRoom.getModerationStarts(), ChronoUnit.SECONDS));
}
if (jitsiRoom.getExpires() != null) {
jitsiRoom
.setExpires(InstantHelper.truncate(jitsiRoom.getExpires(), ChronoUnit.SECONDS));
jitsiRoom.setExpires(InstantHelper.truncate(jitsiRoom.getExpires(), ChronoUnit.SECONDS));
}
// no moderation start without start
@@ -151,8 +147,7 @@ public class JitsiRoomValidator implements Validator {
// exlude self
.and(qJitsiRoom.id.ne(jitsiRoom.getId() == null ? -1L : jitsiRoom.getId()))
// expires null or after now
.and(qJitsiRoom.expires.isNull()
.or(qJitsiRoom.expires.after(Instant.now()))))) {
.and(qJitsiRoom.expires.isNull().or(qJitsiRoom.expires.after(Instant.now()))))) {
errors.rejectValue("room", "NOT_VALID");
}
} else
@@ -164,8 +159,7 @@ public class JitsiRoomValidator implements Validator {
// expires null or after now
.and(qJitsiRoom.expires.isNull().or(qJitsiRoom.expires.after(Instant.now())))
// start null or before expires
.and(qJitsiRoom.starts.isNull()
.or(qJitsiRoom.starts.before(jitsiRoom.getExpires()))))) {
.and(qJitsiRoom.starts.isNull().or(qJitsiRoom.starts.before(jitsiRoom.getExpires()))))) {
errors.rejectValue("expires", "NOT_VALID");
}
}
@@ -176,27 +170,27 @@ public class JitsiRoomValidator implements Validator {
.and(qJitsiRoom.id.ne(jitsiRoom.getId() == null ? -1L : jitsiRoom.getId()))
// expires null or after room start
.and(qJitsiRoom.expires.isNull()
.or(qJitsiRoom.expires.after(jitsiRoom.getModerationStarts() != null
? jitsiRoom.getModerationStarts()
: jitsiRoom.getStarts()))))) {
.or(qJitsiRoom.expires
.after(jitsiRoom.getModerationStarts() != null ? jitsiRoom.getModerationStarts()
: jitsiRoom.getStarts()))))) {
errors.rejectValue("starts", "NOT_VALID");
}
} else
// expiry + start
if (jitsiRoom.getExpires() != null && jitsiRoom.getStarts() != null) {
if (jitsiRoom.getStarts().isAfter(jitsiRoom.getExpires())
|| jitsiRoomRepository.exists(qJitsiRoom.room.eq(jitsiRoom.getRoom())
// exlude self
.and(qJitsiRoom.id
.ne(jitsiRoom.getId() == null ? -1L : jitsiRoom.getId()))
// expires null or after room start
.and(qJitsiRoom.expires.isNull().or(
qJitsiRoom.expires.after(jitsiRoom.getModerationStarts() != null
? jitsiRoom.getModerationStarts()
: jitsiRoom.getStarts())))
// start null or before expires
.and(qJitsiRoom.starts.isNull()
.or(qJitsiRoom.starts.before(jitsiRoom.getExpires()))))) {
if (jitsiRoom.getStarts().isAfter(jitsiRoom
.getExpires()) || jitsiRoomRepository.exists(
qJitsiRoom.room.eq(jitsiRoom.getRoom())
// exlude self
.and(qJitsiRoom.id.ne(jitsiRoom.getId() == null ? -1L : jitsiRoom.getId()))
// expires null or after room start
.and(qJitsiRoom.expires.isNull()
.or(qJitsiRoom.expires.after(jitsiRoom.getModerationStarts() != null
? jitsiRoom.getModerationStarts()
: jitsiRoom.getStarts())))
// start null or before expires
.and(qJitsiRoom.starts.isNull()
.or(qJitsiRoom.starts.before(jitsiRoom.getExpires()))))) {
errors.rejectValue("starts", "NOT_VALID");
errors.rejectValue("expires", "NOT_VALID");
}
@@ -13,6 +13,5 @@ import de.bstly.we.jitsi.model.JitsiRoom;
* The Interface JitsiRoomRepository.
*/
@Repository
public interface JitsiRoomRepository
extends JpaRepository<JitsiRoom, Long>, QuerydslPredicateExecutor<JitsiRoom> {
public interface JitsiRoomRepository extends JpaRepository<JitsiRoom, Long>, QuerydslPredicateExecutor<JitsiRoom> {
}