예제 #1
0
  @Test
  public void testRecognizeReflexiveUserAliases() {

    aliases.setValue("foo bar baz");

    WFSURIHandler.init(strategy);

    WFSURIHandler handler = new WFSURIHandler(gs);

    final URI wrongHost =
        URI.createURI(
            "http://example.com/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI notDFT =
        URI.createURI("http://foo/geoserver/wfs?service=wfs&version=2.0.0&request=GetCapabilities");
    final URI fooDFT =
        URI.createURI(
            "http://foo/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI barDFT =
        URI.createURI(
            "http://bar/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI bazDFT =
        URI.createURI(
            "http://baz/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI localhostDFT =
        URI.createURI(
            "http://localhost/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    assertThat(handler.canHandle(wrongHost), is(false));
    assertThat(handler.canHandle(notDFT), is(false));
    assertThat(handler.canHandle(fooDFT), is(true));
    assertThat(handler.canHandle(barDFT), is(true));
    assertThat(handler.canHandle(bazDFT), is(true));
    assertThat(handler.canHandle(localhostDFT), is(false));
  }
예제 #2
0
  @Test
  public void testOverrideAliasesSpace() {

    aliases.setValue("foo bar  baz ");

    WFSURIHandler.init(strategy);

    assertThat(WFSURIHandler.ADDRESSES, empty());
    assertThat(WFSURIHandler.ADDITIONAL_HOSTNAMES, containsInAnyOrder("foo", "bar", "baz"));
  }
예제 #3
0
public class WFSURIHandlerTest {

  @Rule
  public PropertyRule aliases =
      PropertyRule.system("org.geoserver.wfs.xml.WFSURIHandler.additionalHostnames");

  InitStrategy strategy;

  private GeoServer gs;

  private GeoServerInfo config;

  @SuppressWarnings("deprecation")
  @Before
  public void setUp() {
    WFSURIHandler.ADDITIONAL_HOSTNAMES.clear();
    WFSURIHandler.ADDRESSES.clear();

    // Suppress the network interface interrogation so it doesn't interfere with other tests
    strategy =
        new InitStrategy() {
          public Collection<NetworkInterface> getNetworkInterfaces() {
            return Collections.emptyList();
          }
        };

    gs = EasyMock.createMock(GeoServer.class);
    config = EasyMock.createMock(GeoServerInfo.class);
    expect(gs.getGlobal()).andStubReturn(config);
    expect(config.getProxyBaseUrl()).andStubReturn(null);
    replay(gs, config);
  }

  @After
  public void tearDown() {
    verify(gs, config);
  }

  @Test
  @Ignore
  public void testFromNetworkInterfaces() {
    // Was unable to mock NetworkInterfaces
  }

  @Test
  public void testDefaultAliases() {

    WFSURIHandler.init(strategy);

    assertThat(WFSURIHandler.ADDRESSES, empty());
    assertThat(WFSURIHandler.ADDITIONAL_HOSTNAMES, contains("localhost"));
  }

  @Test
  public void testOverrideAliasesComma() {

    aliases.setValue("foo,bar , baz");

    WFSURIHandler.init(strategy);

    assertThat(WFSURIHandler.ADDRESSES, empty());
    assertThat(WFSURIHandler.ADDITIONAL_HOSTNAMES, containsInAnyOrder("foo", "bar", "baz"));
  }

  @Test
  public void testOverrideAliasesSpace() {

    aliases.setValue("foo bar  baz ");

    WFSURIHandler.init(strategy);

    assertThat(WFSURIHandler.ADDRESSES, empty());
    assertThat(WFSURIHandler.ADDITIONAL_HOSTNAMES, containsInAnyOrder("foo", "bar", "baz"));
  }

  @SuppressWarnings("deprecation")
  protected void setProxyBase(String url) {
    reset(config);
    {
      expect(config.getProxyBaseUrl()).andStubReturn(url);
    }
    replay(config);
  }

  @Test
  public void testRecognizeReflexiveSimple() {

    WFSURIHandler.init(strategy);

    WFSURIHandler handler = new WFSURIHandler(gs);

    final URI wrongHost =
        URI.createURI(
            "http://example.com/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI notDFT =
        URI.createURI(
            "http://localhost/geoserver/wfs?service=wfs&version=2.0.0&request=GetCapabilities");
    final URI localDFT =
        URI.createURI(
            "http://localhost/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    assertThat(handler.canHandle(wrongHost), is(false));
    assertThat(handler.canHandle(notDFT), is(false));
    assertThat(handler.canHandle(localDFT), is(true));
  }

  @Test
  public void testRecognizeReflexiveUserAliases() {

    aliases.setValue("foo bar baz");

    WFSURIHandler.init(strategy);

    WFSURIHandler handler = new WFSURIHandler(gs);

    final URI wrongHost =
        URI.createURI(
            "http://example.com/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI notDFT =
        URI.createURI("http://foo/geoserver/wfs?service=wfs&version=2.0.0&request=GetCapabilities");
    final URI fooDFT =
        URI.createURI(
            "http://foo/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI barDFT =
        URI.createURI(
            "http://bar/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI bazDFT =
        URI.createURI(
            "http://baz/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI localhostDFT =
        URI.createURI(
            "http://localhost/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    assertThat(handler.canHandle(wrongHost), is(false));
    assertThat(handler.canHandle(notDFT), is(false));
    assertThat(handler.canHandle(fooDFT), is(true));
    assertThat(handler.canHandle(barDFT), is(true));
    assertThat(handler.canHandle(bazDFT), is(true));
    assertThat(handler.canHandle(localhostDFT), is(false));
  }

  @Test
  public void testRecognizeReflexiveProxy() {

    this.setProxyBase("http://foo/geoserver");

    WFSURIHandler.init(strategy);

    WFSURIHandler handler = new WFSURIHandler(gs);

    final URI wrongHost =
        URI.createURI(
            "http://example.com/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    final URI notDFT =
        URI.createURI("http://foo/geoserver/wfs?service=wfs&version=2.0.0&request=GetCapabilities");
    final URI fooDFT =
        URI.createURI(
            "http://foo/geoserver/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType");
    assertThat(handler.canHandle(wrongHost), is(false));
    assertThat(handler.canHandle(notDFT), is(false));
    assertThat(handler.canHandle(fooDFT), is(true));
  }
}