managerservice.java

来自「一个完整的XACML工程,学习XACML技术的好例子!」· Java 代码 · 共 120 行

JAVA
120
字号
/*
 * TestingService.java
 *
 * Created on 14 August 2006, 20:41
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.globus.services.core.manager.impl;

import org.globus.wsrf.security.SecurityManager;
import org.globus.gsi.jaas.JaasSubject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.security.auth.Subject;
import java.rmi.RemoteException;
import org.globus.wsrf.Resource;
import org.globus.wsrf.ResourceProperties;
import org.globus.wsrf.ResourceProperty;
import org.globus.wsrf.ResourcePropertySet;
import org.globus.wsrf.impl.ReflectionResourceProperty;
import org.globus.wsrf.impl.SimpleResourcePropertySet;
import org.globus.stubs.ManagerService_instance.*;
import org.globus.stubs.ManagerService_instance.service.*;
import org.globus.stubs.TestingService_instance.*;
import org.globus.stubs.TestingService_instance.service.*;
import java.util.Properties;
import org.apache.axis.message.addressing.Address;
import org.apache.axis.message.addressing.EndpointReferenceType;
import org.w3c.dom.Element;
import org.globus.wsrf.security.Constants;
import javax.xml.rpc.Stub;
import org.globus.wsrf.impl.security.descriptor.ClientSecurityDescriptor;
import org.globus.wsrf.impl.security.authorization.NoAuthorization;
import org.globus.axis.util.Util;

/**
 *
 * @author ls97
 */
public class ManagerService implements Resource, ResourceProperties {
    
    static Log logger = LogFactory.getLog(ManagerService.class.getName());
    private ResourcePropertySet propSet;
    private String type;
        
        /** Creates a new instance of PrintingService */
    public ManagerService() throws RemoteException {
            
        this.propSet = new SimpleResourcePropertySet(
                        ManagerQNames.RESOURCE_PROPERTIES);

        try {
            ResourceProperty typeRP = new ReflectionResourceProperty(
                            ManagerQNames.RP_TYPE, "Fool", this);
            this.propSet.add(typeRP);
            setFool("foo");
        } catch (Exception e) {
                throw new RuntimeException(e.getMessage());
        }
    }
    
    public void setFool(String typeIn) {
        this.type=typeIn;
    }
    
    public String getFool() {
        return this.type;
    }

    public SubmitResponse submit(SubmitRequest req) throws RemoteException {
        logger.debug("submit");
        String user = req.getUserSecDes();
        String act = req.getOperation();
        int minutes = req.getParameter();
        String service = req.getService();
        logger.debug("user's security descriptor = "+user);
        logger.debug("requested operation = "+act);
        logger.debug("requested parameter = "+minutes);
        logger.debug("requested service = "+service);
        TestingServiceAddressingLocator locator = new TestingServiceAddressingLocator();
        try {
                // Create endpoint reference to service
                EndpointReferenceType endpoint = new EndpointReferenceType();
                endpoint.setAddress(new Address(service));
                TestingPortType tester = locator.getTestingPortTypePort(endpoint);
                String CLIENT_DESC = user;
                tester = locator.getTestingPortTypePort(endpoint);
                ((Stub)tester)._setProperty(Constants.CLIENT_DESCRIPTOR_FILE,CLIENT_DESC);
                ((Stub)tester)._setProperty(Constants.GSI_SEC_CONV,Constants.ENCRYPTION);
                ((Stub)tester)._setProperty(Constants.AUTHORIZATION,NoAuthorization.getInstance());
                try {
                    if (act.equals("watch")) {
                        tester.watch(minutes);
                        logger.debug("watch "+minutes+" minutes. done!");
                    } else if (act.equals("start")) {
                        tester.start(minutes);
                        logger.debug("start for "+minutes+" minutes. done!");
                    } else if (act.equals("stop")) {
                        StopRequest r = new StopRequest();
                        tester.stop(r);
                        logger.debug("stop. done! ");
                    } else throw new RemoteException("access deny");
                } catch (Exception e) {
                    throw new RemoteException("access deny");
                }
        } catch (Exception e) {
                throw new RemoteException("access deny");
        }  
        SubmitResponse response = null;
        return response;
    }
    
    /* Required by interface ResourceProperties */
    public ResourcePropertySet getResourcePropertySet() {
            return this.propSet;
    }  
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?