Skip to content

Commit

Permalink
SHIBUI-836 wip
Browse files Browse the repository at this point in the history
  • Loading branch information
dima767 committed Sep 11, 2018
1 parent 76a861f commit 60f97b5
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package edu.internet2.tier.shibboleth.admin.ui;

import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository;
import edu.internet2.tier.shibboleth.admin.ui.service.TokenPlaceholderValueResolvingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package edu.internet2.tier.shibboleth.admin.ui.configuration;

import edu.internet2.tier.shibboleth.admin.ui.service.TokenPlaceholderValueResolvingService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.PropertyResolver;

@Configuration
public class PlaceholderResolverComponentsConfiguration {

@Bean
public TokenPlaceholderValueResolvingService tokenPlaceholderValueResolvingService(PropertyResolver propertyResolver) {
return TokenPlaceholderValueResolvingService.shibbolethPlaceholderAware(propertyResolver);
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
package edu.internet2.tier.shibboleth.admin.ui.service;

import org.springframework.core.env.PropertyResolver;

/**
* Implementation of {@link TokenPlaceholderValueResolvingService} based on Spring Framework's default property resolver
* which understands and replaces Shibboleth Idp specific placeholder prefix of '%{' with standard Spring's placeholder
* prefix of '${' before resolving.
*
* If passed it value does not contain Shibboleth Idp '%{}' placeholder token, returns that value as is.
*
* @author Dmitriy Kopylenko
*/
public class ShibbolethPlaceholderTokenAwareValueResolvingService implements TokenPlaceholderValueResolvingService {

private PropertyResolver propertyResolver;

ShibbolethPlaceholderTokenAwareValueResolvingService(PropertyResolver propertyResolver) {
this.propertyResolver = propertyResolver;
}

@Override
public String resolveValueFromTokenPlaceholder(String tokenPlaceholder) {
return null;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
package edu.internet2.tier.shibboleth.admin.ui.service;

import org.springframework.core.env.PropertyResolver;

/**
* Generic API to resolve values from arbitrary tokenized placeholders such as '%{token.placeholder}' etc.
*
* @author Dmitriy Kopylenko
*/
@FunctionalInterface
public interface TokenPlaceholderValueResolvingService {

String resolveValueFromTokenPlaceholder(String tokenPlaceholder);

static TokenPlaceholderValueResolvingService shibbolethPlaceholderAware(PropertyResolver propertyResolver) {
return new ShibbolethPlaceholderTokenAwareValueResolvingService(propertyResolver);
}
}

0 comments on commit 60f97b5

Please sign in to comment.