-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merged in SHIBUI-517 (pull request #83)
SHIBUI-517 Approved-by: Shibui Jenkins <shibui.jenkins@gmail.com>
- Loading branch information
Showing
20 changed files
with
964 additions
and
116 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
110 changes: 110 additions & 0 deletions
110
...ternet2/tier/shibboleth/admin/ui/controller/FileBackedHttpMetadataProviderController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
package edu.internet2.tier.shibboleth.admin.ui.controller; | ||
|
||
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver; | ||
import edu.internet2.tier.shibboleth.admin.ui.repository.FileBackedHttpMetadataResolverRepository; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.http.HttpStatus; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.transaction.annotation.Transactional; | ||
import org.springframework.web.bind.annotation.DeleteMapping; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.PostMapping; | ||
import org.springframework.web.bind.annotation.PutMapping; | ||
import org.springframework.web.bind.annotation.RequestBody; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | ||
|
||
import java.net.URI; | ||
|
||
/** | ||
* @author Bill Smith (wsmith@unicon.net) | ||
*/ | ||
@RestController | ||
@RequestMapping("/api/MetadataProvider/FileBackedHttp") | ||
public class FileBackedHttpMetadataProviderController { | ||
private static final Logger logger = LoggerFactory.getLogger(FileBackedHttpMetadataProviderController.class); | ||
|
||
@Autowired | ||
FileBackedHttpMetadataResolverRepository repository; | ||
|
||
@DeleteMapping("/{resourceId}") | ||
public ResponseEntity<?> deleteByResourceId(@PathVariable String resourceId) { | ||
if (repository.deleteByResourceId(resourceId)) { | ||
return ResponseEntity.accepted().build(); | ||
} else { | ||
return ResponseEntity.notFound().build(); | ||
} | ||
} | ||
|
||
@GetMapping("/name/{metadataProviderName}") | ||
@Transactional(readOnly = true) | ||
public ResponseEntity<?> getOneByName(@PathVariable String metadataProviderName) { | ||
FileBackedHttpMetadataResolver resolver = repository.findByName(metadataProviderName); | ||
if (resolver == null) { | ||
return ResponseEntity.notFound().build(); | ||
} else { | ||
resolver.setVersion(resolver.hashCode()); | ||
return ResponseEntity.ok(resolver); | ||
} | ||
} | ||
|
||
@GetMapping("/{resourceId}") | ||
@Transactional(readOnly = true) | ||
public ResponseEntity<?> getOneByResourceId(@PathVariable String resourceId) { | ||
FileBackedHttpMetadataResolver resolver = repository.findByResourceId(resourceId); | ||
if (resolver == null) { | ||
return ResponseEntity.notFound().build(); | ||
} else { | ||
resolver.setVersion(resolver.hashCode()); | ||
return ResponseEntity.ok(resolver); | ||
} | ||
} | ||
|
||
@PostMapping | ||
public ResponseEntity<?> create(@RequestBody FileBackedHttpMetadataResolver resolver) { | ||
if (repository.findByName(resolver.getName()) != null) { | ||
return ResponseEntity.status(HttpStatus.CONFLICT).build(); | ||
} | ||
|
||
FileBackedHttpMetadataResolver persistedResolver = repository.save(resolver); | ||
persistedResolver.setVersion(persistedResolver.hashCode()); | ||
|
||
return ResponseEntity | ||
.created(getResourceUriFor(persistedResolver)) | ||
.body(persistedResolver); | ||
} | ||
|
||
@PutMapping | ||
public ResponseEntity<?> update(@RequestBody FileBackedHttpMetadataResolver resolver) { | ||
FileBackedHttpMetadataResolver existingResolver = repository.findByResourceId(resolver.getResourceId()); | ||
|
||
if (existingResolver == null) { | ||
return ResponseEntity.notFound().build(); | ||
} | ||
|
||
if (existingResolver.hashCode() != resolver.getVersion()) { | ||
logger.info("Comparing: " + existingResolver.hashCode() + " with " + resolver.getVersion()); | ||
return ResponseEntity.status(HttpStatus.CONFLICT).build(); | ||
} | ||
|
||
resolver.setAudId(existingResolver.getAudId()); | ||
//TODO: Do we need to set anything else? dates? | ||
|
||
FileBackedHttpMetadataResolver updatedResolver = repository.save(resolver); | ||
updatedResolver.setVersion(updatedResolver.hashCode()); | ||
|
||
return ResponseEntity.ok(updatedResolver); | ||
} | ||
|
||
private static URI getResourceUriFor(FileBackedHttpMetadataResolver resolver) { | ||
return ServletUriComponentsBuilder | ||
.fromCurrentServletMapping().path("/api/MetadataProvider/FileBackedHttp/") | ||
.pathSegment(resolver.getResourceId()) | ||
.build() | ||
.toUri(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 0 additions & 55 deletions
55
backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataResolver.java
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.