001/*
002 * Licensed to DuraSpace under one or more contributor license agreements.
003 * See the NOTICE file distributed with this work for additional information
004 * regarding copyright ownership.
005 *
006 * DuraSpace licenses this file to you under the Apache License,
007 * Version 2.0 (the "License"); you may not use this file except in
008 * compliance with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.fcrepo.auth.integration;
019
020import static org.junit.Assert.assertEquals;
021
022import java.io.IOException;
023
024import org.apache.commons.codec.binary.Base64;
025import org.apache.http.client.methods.HttpGet;
026import org.apache.http.message.AbstractHttpMessage;
027import org.junit.Test;
028
029/**
030 * @author peichman
031 */
032public class ServletContainerAuthenticatingRealmIT extends AbstractResourceIT {
033
034    /**
035     * Convenience method for applying HTTP Basic auth credentials to a request
036     *
037     * @param method the request to add the credentials to
038     * @param username the username to add
039     */
040    private static void setAuth(final AbstractHttpMessage method, final String username) {
041        final String creds = username + ":password";
042        final String encCreds = new String(Base64.encodeBase64(creds.getBytes()));
043        final String basic = "Basic " + encCreds;
044        method.setHeader("Authorization", basic);
045    }
046
047    @Test
048    public void testUserWithoutRoles() throws IOException {
049        // make sure this doesn't cause Shiro to explode
050        final HttpGet request = new HttpGet(serverAddress);
051        setAuth(request, "noroles");
052        assertEquals(200, getStatus(request));
053    }
054
055}