/** * Notify all <strong>matching</strong> listeners registered with this * application of an application event. Events may be framework events * (such as RequestHandledEvent) or application-specific events. * @param event the event to publish * @see org.springframework.web.context.support.RequestHandledEvent */ default void publishEvent(ApplicationEvent event) { publishEvent((Object) event); }
/** * Notify all <strong>matching</strong> listeners registered with this * application of an application event. Events may be framework events * (such as RequestHandledEvent) or application-specific events. * @param event the event to publish * @see org.springframework.web.context.support.RequestHandledEvent */ default void publishEvent(ApplicationEvent event) { publishEvent((Object) event); }
private void publishEvent(ApplicationEventPublisher publisher, ApplicationEvent event) { try { publisher.publishEvent(event); } catch (Throwable ex) { if (logger.isErrorEnabled()) { logger.error("Error publishing " + event, ex); } } }
protected void publishBrokerAvailableEvent() { boolean shouldPublish = this.brokerAvailable.compareAndSet(false, true); if (this.eventPublisher != null && shouldPublish) { if (logger.isInfoEnabled()) { logger.info(this.availableEvent); } this.eventPublisher.publishEvent(this.availableEvent); } }
protected void publishBrokerUnavailableEvent() { boolean shouldPublish = this.brokerAvailable.compareAndSet(true, false); if (this.eventPublisher != null && shouldPublish) { if (logger.isInfoEnabled()) { logger.info(this.notAvailableEvent); } this.eventPublisher.publishEvent(this.notAvailableEvent); } }
@Override public Object invoke(MethodInvocation invocation) throws Throwable { Object retVal = invocation.proceed(); Assert.state(this.applicationEventClassConstructor != null, "No ApplicationEvent class set"); ApplicationEvent event = (ApplicationEvent) this.applicationEventClassConstructor.newInstance(invocation.getThis()); Assert.state(this.applicationEventPublisher != null, "No ApplicationEventPublisher available"); this.applicationEventPublisher.publishEvent(event); return retVal; }
private void publishEvent(ApplicationEvent event) { try { eventPublisher.publishEvent(event); } catch (Exception e) { log.error(e.getMessage(), e); } }
private void publishEvent(ApplicationEvent event) { try { eventPublisher.publishEvent(event); } catch (Exception e) { log.error(e.getMessage(), e); } }
/** * @since 2.6.5 */ private void publishExportEvent() { ServiceBeanExportedEvent exportEvent = new ServiceBeanExportedEvent(this); applicationEventPublisher.publishEvent(exportEvent); }
/** * @since 2.6.5 */ private void publishExportEvent() { ServiceBeanExportedEvent exportEvent = new ServiceBeanExportedEvent(this); applicationEventPublisher.publishEvent(exportEvent); }
@Override public Object invoke(MethodInvocation invocation) throws Throwable { Object retVal = invocation.proceed(); Assert.state(this.applicationEventClassConstructor != null, "No ApplicationEvent class set"); ApplicationEvent event = (ApplicationEvent) this.applicationEventClassConstructor.newInstance(invocation.getThis()); Assert.state(this.applicationEventPublisher != null, "No ApplicationEventPublisher available"); this.applicationEventPublisher.publishEvent(event); return retVal; }
@PostConstruct public void init() { this.publisher.publishEvent("earlyEvent"); } }
@PreAuthorize(value = "@permissionValidator.isSuperAdmin()") @DeleteMapping("/{appId:.+}") public void deleteApp(@PathVariable String appId) { App app = appService.deleteAppInLocal(appId); publisher.publishEvent(new AppDeletionEvent(app)); }
@PreAuthorize(value = "@permissionValidator.isSuperAdmin()") @DeleteMapping("/apps/{appId}/appnamespaces/{namespaceName:.+}") public ResponseEntity<Void> deleteAppNamespace(@PathVariable String appId, @PathVariable String namespaceName) { AppNamespace appNamespace = appNamespaceService.deleteAppNamespace(appId, namespaceName); publisher.publishEvent(new AppNamespaceDeletionEvent(appNamespace)); return ResponseEntity.ok().build(); }
@PreAuthorize(value = "@permissionValidator.isAppAdmin(#appId)") @PutMapping("/{appId:.+}") public void update(@PathVariable String appId, @Valid @RequestBody AppModel appModel) { if (!Objects.equals(appId, appModel.getAppId())) { throw new BadRequestException("The App Id of path variable and request body is different"); } App app = transformToApp(appModel); App updatedApp = appService.updateAppInLocal(app); publisher.publishEvent(new AppInfoChangedEvent(updatedApp)); }
@Override public int updateByPk(String id, PermissionEntity entity) { int len = super.updateByPk(id, entity); eventPublisher.publishEvent(new ClearUserAuthorizationCacheEvent(null, true)); return len; }
@Override public PermissionEntity deleteByPk(String id) { PermissionEntity old = super.deleteByPk(id); eventPublisher.publishEvent(new ClearUserAuthorizationCacheEvent(null, true)); return old; } }
@PreAuthorize(value = "@permissionValidator.hasCreateAppNamespacePermission(#appId, #appNamespace)") @PostMapping("/apps/{appId}/appnamespaces") public AppNamespace createAppNamespace(@PathVariable String appId, @RequestParam(defaultValue = "true") boolean appendNamespacePrefix, @Valid @RequestBody AppNamespace appNamespace) { AppNamespace createdAppNamespace = appNamespaceService.createAppNamespaceInLocal(appNamespace, appendNamespacePrefix); if (portalConfig.canAppAdminCreatePrivateNamespace() || createdAppNamespace.isPublic()) { namespaceService.assignNamespaceRoleToOperator(appId, appNamespace.getName(), userInfoHolder.getUser().getUserId()); } publisher.publishEvent(new AppNamespaceCreationEvent(createdAppNamespace)); return createdAppNamespace; }
@PostMapping public App create(@Valid @RequestBody AppModel appModel) { App app = transformToApp(appModel); App createdApp = appService.createAppInLocal(app); publisher.publishEvent(new AppCreationEvent(createdApp)); Set<String> admins = appModel.getAdmins(); if (!CollectionUtils.isEmpty(admins)) { rolePermissionService .assignRoleToUsers(RoleUtils.buildAppMasterRoleName(createdApp.getAppId()), admins, userInfoHolder.getUser().getUserId()); } return createdApp; }
@EventListener public void handleUserCreatedEvent(UserCreatedEvent event) { //生成totp String key = TotpUtil.getRandomSecretBase32(64); UserEntity userEntity = event.getUserEntity(); String keyUrl = TotpUtil.generateTotpString(userEntity.getUsername(), domain, key); //创建一个用户没有操作权限的配置 userSettingManager.saveSetting(userEntity.getId(), settingId, key, UserSettingPermission.NONE); eventPublisher.publishEvent(new TotpTwoFactorCreatedEvent(userEntity, keyUrl)); }