diff --git a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/extensions/ExtensionResource.java b/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/extensions/ExtensionResource.java index 13eca7f5a01..66dbd8b0d12 100644 --- a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/extensions/ExtensionResource.java +++ b/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/extensions/ExtensionResource.java @@ -138,7 +138,7 @@ public Response getTypes(@HeaderParam("Accept-Language") @ApiParam(value = "lang } @GET - @Path("/{extensionId: [a-zA-Z_0-9-]*}") + @Path("/{extensionId: [a-zA-Z_0-9-]+}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get extension with given ID.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = String.class), @@ -157,7 +157,7 @@ public Response getById(@HeaderParam("Accept-Language") @ApiParam(value = "langu } @POST - @Path("/{extensionId: [a-zA-Z_0-9-:]*}/install") + @Path("/{extensionId: [a-zA-Z_0-9-:]+}/install") @ApiOperation(value = "Installs the extension with the given ID.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK") }) public Response installExtension( @@ -194,7 +194,7 @@ public Response installExtensionByURL( } @POST - @Path("/{extensionId: [a-zA-Z_0-9-:]*}/uninstall") + @Path("/{extensionId: [a-zA-Z_0-9-:]+}/uninstall") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK") }) public Response uninstallExtension( final @PathParam("extensionId") @ApiParam(value = "extension ID", required = true) String extensionId) { diff --git a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/item/ItemResource.java b/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/item/ItemResource.java index 974210eb28e..afdee23db5a 100644 --- a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/item/ItemResource.java +++ b/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/item/ItemResource.java @@ -236,7 +236,7 @@ public Response getItems( @GET @RolesAllowed({ Role.USER, Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}") + @Path("/{itemname: [a-zA-Z_0-9]+}") @Produces({ MediaType.APPLICATION_JSON }) @ApiOperation(value = "Gets a single item.", response = EnrichedItemDTO.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = EnrichedItemDTO.class), @@ -276,7 +276,7 @@ private Set splitAndFilterNamespaces(@Nullable String namespaceSelector, */ @GET @RolesAllowed({ Role.USER, Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}/state") + @Path("/{itemname: [a-zA-Z_0-9]+}/state") @Produces(MediaType.TEXT_PLAIN) @ApiOperation(value = "Gets the state of an item.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = String.class), @@ -301,7 +301,7 @@ public Response getPlainItemState( @PUT @RolesAllowed({ Role.USER, Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}/state") + @Path("/{itemname: [a-zA-Z_0-9]+}/state") @Consumes(MediaType.TEXT_PLAIN) @ApiOperation(value = "Updates the state of an item.") @ApiResponses(value = { @ApiResponse(code = 202, message = "Accepted"), @@ -341,7 +341,7 @@ public Response putItemState( @POST @RolesAllowed({ Role.USER, Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}") + @Path("/{itemname: [a-zA-Z_0-9]+}") @Consumes(MediaType.TEXT_PLAIN) @ApiOperation(value = "Sends a command to an item.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @@ -388,7 +388,7 @@ public Response postItemCommand( @PUT @RolesAllowed({ Role.ADMIN }) - @Path("/{itemName: [a-zA-Z_0-9]*}/members/{memberItemName: [a-zA-Z_0-9]*}") + @Path("/{itemName: [a-zA-Z_0-9]+}/members/{memberItemName: [a-zA-Z_0-9]+}") @ApiOperation(value = "Adds a new member to a group item.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 404, message = "Item or member item not found or item is not of type group item."), @@ -426,7 +426,7 @@ public Response addMember(@PathParam("itemName") @ApiParam(value = "item name", @DELETE @RolesAllowed({ Role.ADMIN }) - @Path("/{itemName: [a-zA-Z_0-9]*}/members/{memberItemName: [a-zA-Z_0-9]*}") + @Path("/{itemName: [a-zA-Z_0-9]+}/members/{memberItemName: [a-zA-Z_0-9]+}") @ApiOperation(value = "Removes an existing member from a group item.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 404, message = "Item or member item not found or item is not of type group item."), @@ -464,7 +464,7 @@ public Response removeMember(@PathParam("itemName") @ApiParam(value = "item name @DELETE @RolesAllowed({ Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}") + @Path("/{itemname: [a-zA-Z_0-9]+}") @ApiOperation(value = "Removes an item from the registry.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 404, message = "Item not found or item is not editable.") }) @@ -478,7 +478,7 @@ public Response removeItem(@PathParam("itemname") @ApiParam(value = "item name", @PUT @RolesAllowed({ Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}/tags/{tag}") + @Path("/{itemname: [a-zA-Z_0-9]+}/tags/{tag}") @ApiOperation(value = "Adds a tag to an item.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 404, message = "Item not found."), @@ -504,7 +504,7 @@ public Response addTag(@PathParam("itemname") @ApiParam(value = "item name", req @DELETE @RolesAllowed({ Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}/tags/{tag}") + @Path("/{itemname: [a-zA-Z_0-9]+}/tags/{tag}") @ApiOperation(value = "Removes a tag from an item.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 404, message = "Item not found."), @@ -530,7 +530,7 @@ public Response removeTag(@PathParam("itemname") @ApiParam(value = "item name", @PUT @RolesAllowed({ Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}/metadata/{namespace}") + @Path("/{itemname: [a-zA-Z_0-9]+}/metadata/{namespace}") @Consumes(MediaType.APPLICATION_JSON) @ApiOperation(value = "Adds metadata to an item.") @ApiResponses(value = { // @@ -570,7 +570,7 @@ public Response addMetadata(@PathParam("itemname") @ApiParam(value = "item name" @DELETE @RolesAllowed({ Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}/metadata/{namespace}") + @Path("/{itemname: [a-zA-Z_0-9]+}/metadata/{namespace}") @ApiOperation(value = "Removes metadata from an item.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 404, message = "Item not found."), @@ -610,7 +610,7 @@ public Response removeMetadata( */ @PUT @RolesAllowed({ Role.ADMIN }) - @Path("/{itemname: [a-zA-Z_0-9]*}") + @Path("/{itemname: [a-zA-Z_0-9]+}") @Consumes(MediaType.APPLICATION_JSON) @ApiOperation(value = "Adds a new item to the registry or updates the existing item.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = String.class), diff --git a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/persistence/PersistenceResource.java b/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/persistence/PersistenceResource.java index 4cf8cb22cf8..21314d50e5e 100644 --- a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/persistence/PersistenceResource.java +++ b/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/persistence/PersistenceResource.java @@ -162,7 +162,7 @@ public Response httpGetPersistenceServiceItems(@Context HttpHeaders headers, @GET @RolesAllowed({ Role.USER, Role.ADMIN }) - @Path("/items/{itemname: [a-zA-Z_0-9]*}") + @Path("/items/{itemname: [a-zA-Z_0-9]+}") @Produces({ MediaType.APPLICATION_JSON }) @ApiOperation(value = "Gets item persistence data from the persistence service.", response = ItemHistoryDTO.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = ItemHistoryDTO.class), @@ -184,7 +184,7 @@ public Response httpGetPersistenceItemData(@Context HttpHeaders headers, @DELETE @RolesAllowed({ Role.ADMIN }) - @Path("/items/{itemname: [a-zA-Z_0-9]*}") + @Path("/items/{itemname: [a-zA-Z_0-9]+}") @Produces({ MediaType.APPLICATION_JSON }) @ApiOperation(value = "Delete item data from a specific persistence service.", response = String.class, responseContainer = "List") @ApiResponses(value = { @@ -203,7 +203,7 @@ public Response httpDeletePersistenceServiceItem(@Context HttpHeaders headers, @PUT @RolesAllowed({ Role.ADMIN }) - @Path("/items/{itemname: [a-zA-Z_0-9]*}") + @Path("/items/{itemname: [a-zA-Z_0-9]+}") @Produces({ MediaType.APPLICATION_JSON }) @ApiOperation(value = "Stores item persistence data into the persistence service.", response = ItemHistoryDTO.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = ItemHistoryDTO.class), diff --git a/bundles/org.openhab.core.io.rest.sitemap/src/main/java/org/eclipse/smarthome/io/rest/sitemap/internal/SitemapResource.java b/bundles/org.openhab.core.io.rest.sitemap/src/main/java/org/eclipse/smarthome/io/rest/sitemap/internal/SitemapResource.java index 834b1741811..fcb4ed2c3d6 100644 --- a/bundles/org.openhab.core.io.rest.sitemap/src/main/java/org/eclipse/smarthome/io/rest/sitemap/internal/SitemapResource.java +++ b/bundles/org.openhab.core.io.rest.sitemap/src/main/java/org/eclipse/smarthome/io/rest/sitemap/internal/SitemapResource.java @@ -230,7 +230,7 @@ public Response getSitemaps() { } @GET - @Path("/{sitemapname: [a-zA-Z_0-9]*}") + @Path("/{sitemapname: [a-zA-Z_0-9]+}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get sitemap by name.", response = SitemapDTO.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK") }) @@ -248,7 +248,7 @@ public Response getSitemapData(@Context HttpHeaders headers, } @GET - @Path("/{sitemapname: [a-zA-Z_0-9]*}/{pageid: [a-zA-Z_0-9]*}") + @Path("/{sitemapname: [a-zA-Z_0-9]+}/{pageid: [a-zA-Z_0-9]+}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Polls the data for a sitemap.", response = PageDTO.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @@ -317,7 +317,7 @@ public Object createEventSubscription() { * connection. */ @GET - @Path(SEGMENT_EVENTS + "/{subscriptionid: [a-zA-Z_0-9-]*}/") + @Path(SEGMENT_EVENTS + "/{subscriptionid: [a-zA-Z_0-9-]+}/") @Produces(SseFeature.SERVER_SENT_EVENTS) @ApiOperation(value = "Get sitemap events.", response = EventOutput.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), diff --git a/bundles/org.openhab.core.io.rest.voice/src/main/java/org/eclipse/smarthome/io/rest/voice/internal/VoiceResource.java b/bundles/org.openhab.core.io.rest.voice/src/main/java/org/eclipse/smarthome/io/rest/voice/internal/VoiceResource.java index a44cf1149d4..fa876c71027 100644 --- a/bundles/org.openhab.core.io.rest.voice/src/main/java/org/eclipse/smarthome/io/rest/voice/internal/VoiceResource.java +++ b/bundles/org.openhab.core.io.rest.voice/src/main/java/org/eclipse/smarthome/io/rest/voice/internal/VoiceResource.java @@ -107,7 +107,7 @@ public Response getInterpreters( } @GET - @Path("/interpreters/{id: [a-zA-Z_0-9]*}") + @Path("/interpreters/{id: [a-zA-Z_0-9]+}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Gets a single interpreter.", response = HumanLanguageInterpreterDTO.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @@ -126,7 +126,7 @@ public Response getInterpreter( } @POST - @Path("/interpreters/{id: [a-zA-Z_0-9]*}") + @Path("/interpreters/{id: [a-zA-Z_0-9]+}") @Consumes(MediaType.TEXT_PLAIN) @ApiOperation(value = "Sends a text to a given human language interpreter.") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"),