Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Copyright 2011 JBoss Inc
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
package org.drools.guvnor.server.files;
    protected final Logger log = LoggerFactory.getLogger(getClass());
    protected Identity identity;
    protected Credentials credentials;

Deprecated: should use the seam-security support for this

Check the users credentials. This takes the Authorization string from the HTTP request header (the whole lot). uses Seam Identity component to set the user up.

    public boolean loginByHeader(String auth) {
        //If the request is from same session, the user should be logged in already.
        if (.isLoggedIn()) {
            return true;
        String username = null;
        String password = null;
        if (auth != null && auth.toUpperCase(.).startsWith("BASIC ")) {
            String[] a = unpack(auth);
            username = a[0];
            password = a[1];
            .setCredential(new org.picketlink.idm.impl.api.PasswordCredential(password));
        if ( !.isLoggedIn() ) {
            .warn("Unable to authenticate for rest api: " + username);
            return false;
        .info(username + " authenticated for rest api");
        return true;
    protected String[] unpack(String auth) {
        // Get encoded user and password, comes after "BASIC "
        String userpassEncoded = auth.substring(6);
        String userpassDecoded = new String(Base64.decodeBase64(userpassEncoded.getBytes()));
        String[] a = userpassDecoded.split(":");
        for (int i = 0; i < a.lengthi++) {
            a[i] = a[i].trim();
        if (a.length == 2) {
            return a;
        } else if (a.length == 1) {
            //pwd is empty
            return new String[]{a[0], ""};
        } else {
            return new String[]{""""};
New to GrepCode? Check out our FAQ X