~ubuntu-branches/ubuntu/maverick/eucalyptus/maverick

« back to all changes in this revision

Viewing changes to util/pwcb.c

  • Committer: Bazaar Package Importer
  • Author(s): Dave Walker (Daviey)
  • Date: 2010-07-21 17:27:10 UTC
  • mfrom: (1.1.38 upstream)
  • Revision ID: james.westby@ubuntu.com-20100721172710-7xv07dmdqgivc3t9
Tags: 2.0~bzr1211-0ubuntu1
* New major upstream version merge, 2.0 (r1211).
* debian/patches/:
  - 01-wsdl-stubs.patch, debian/wsdl.md5sums: wsdl stubs updated.
  - 02-Makefile.patch: Updated to reflect new code layout.
  - 07-local_support_euca_conf-in.patch: Updated to reflect new code layout.
  - 08-ubuntu-default-networking.patch: Refreshed.
  - 09-small-128-192MB.patch: Updated to point to new location.
  - 10-disable-iscsi.patch: Refreshed.
  - 11-state-cleanup-memleakfix.patch: Removed, fixed upstream.
  - 15-fix-default-ramdisk.patch: Updated to point to new location.
  - 16-kvm_libvirt_xml_default_use_kvm.patch: Updated to reflect changes.
  - 17-fix_walrus_OOM_errors.patch: Removed, fixed upstream.
  - 18-priv_security.patch: Updated to reflect upstream changes.
  - 20-brute-force-webui.patch: Updated to reflect upstream changes. 
  - 21-eucalyptus-1.7-with-gwt-1.6.4.patch: New patch, allows 
    eucalyptus-1.7 to be built against gwt 1.6.4. Based on patch courtesy 
    of Dmitrii Zagorodnov, upstream. (LP: #597330)
* debian/eucalyptus-java-common.links: 
  - Changed symlink for groovy, point to groovy.all.jar, making compatiable 
    with groovy versions >1.7. (LP: #595421)
  - Added ant.jar & jetty-rewrite-handler.jar as they are now required.
* debian/control
  - & debian/build-jars: Added libjavassist-java and libjetty-extra-java as 
    build dependencies.
  - Added libjetty-extra-java as a dependency of eucalyptus-java-common
* The binary resulting jar's have been renamed from eucalyptus-*-1.6.2.jar
  to eucalyptus-*-main.jar:    
  - debian/eucalyptus-cc.upstart
  - debian/eucalyptus-cloud.install
  - debian/eucalyptus-common.eucalyptus.upstart
  - debian/eucalyptus-java-common.install
  - debian/eucalyptus-network.upstart
  - debian/eucalyptus-sc.install
  - debian/eucalyptus-walrus.install
* debian/eucalyptus-java-common.install: New upstream jars that have been
  installed:
  - eucalyptus-db-hsqldb-ext-main.jar
  - eucalyptus-component-main.jar
* debian/control:
  - Updated Standards Version to 3.8.4 (no change)
  - Updated the upstream Homepage to: http://open.eucalyptus.com/
  - Changed Vcs-Bzr to reflect new location of Ubuntu hosted development branch.
  - Made the Build Dependency of groovy and the binary eucalyptus-java-common
    package depend on version >=1.7.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
Copyright (c) 2009  Eucalyptus Systems, Inc.    
3
 
 
4
 
This program is free software: you can redistribute it and/or modify
5
 
it under the terms of the GNU General Public License as published by 
6
 
the Free Software Foundation, only version 3 of the License.  
7
 
 
8
 
This file is distributed in the hope that it will be useful, but WITHOUT
9
 
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
 
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
11
 
for more details.  
12
 
 
13
 
You should have received a copy of the GNU General Public License along
14
 
with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
 
16
 
Please contact Eucalyptus Systems, Inc., 130 Castilian
17
 
Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/> 
18
 
if you need additional information or have any questions.
19
 
 
20
 
This file may incorporate work covered under the following copyright and
21
 
permission notice:
22
 
 
23
 
  Software License Agreement (BSD License)
24
 
 
25
 
  Copyright (c) 2008, Regents of the University of California
26
 
  
27
 
 
28
 
  Redistribution and use of this software in source and binary forms, with
29
 
  or without modification, are permitted provided that the following
30
 
  conditions are met:
31
 
 
32
 
    Redistributions of source code must retain the above copyright notice,
33
 
    this list of conditions and the following disclaimer.
34
 
 
35
 
    Redistributions in binary form must reproduce the above copyright
36
 
    notice, this list of conditions and the following disclaimer in the
37
 
    documentation and/or other materials provided with the distribution.
38
 
 
39
 
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
40
 
  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
41
 
  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
42
 
  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
43
 
  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
44
 
  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
45
 
  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
46
 
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
47
 
  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
48
 
  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
49
 
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
50
 
  THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
51
 
  LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
52
 
  SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
53
 
  IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
54
 
  BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
55
 
  THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
56
 
  OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
57
 
  WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
58
 
  ANY SUCH LICENSES OR RIGHTS.
59
 
*/
60
 
/*
61
 
 * Licensed to the Apache Software Foundation (ASF) under one or more
62
 
 * contributor license agreements.  See the NOTICE file distributed with
63
 
 * this work for additional information regarding copyright ownership.
64
 
 * The ASF licenses this file to You under the Apache License, Version 2.0
65
 
 * (the "License"); you may not use this file except in compliance with
66
 
 * the License.  You may obtain a copy of the License at
67
 
 *
68
 
 *      http://www.apache.org/licenses/LICENSE-2.0
69
 
 *
70
 
 * Unless required by applicable law or agreed to in writing, software
71
 
 * distributed under the License is distributed on an "AS IS" BASIS,
72
 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
73
 
 * See the License for the specific language governing permissions and
74
 
 * limitations under the License.
75
 
 */
76
 
 
77
 
#include <stdio.h>
78
 
#include <stdlib.h>
79
 
 
80
 
 
81
 
#include <axis2_defines.h>
82
 
#include <axutil_error.h>
83
 
#include <axutil_env.h>
84
 
#include <axutil_utils.h>
85
 
#include <rampart_callback.h>
86
 
#include <axutil_string.h>
87
 
#include <axis2_svc_skeleton.h>
88
 
#include <axutil_string.h>
89
 
 
90
 
axis2_status_t AXIS2_CALL
91
 
my_free_function(rampart_callback_t *rcb,
92
 
        const axutil_env_t *env)
93
 
{
94
 
        AXIS2_FREE(env->allocator, rcb->ops);
95
 
        AXIS2_FREE(env->allocator, rcb);
96
 
    return AXIS2_SUCCESS;
97
 
}
98
 
 
99
 
axis2_char_t* AXIS2_CALL get_sample_password(rampart_callback_t *rcb, const axutil_env_t *env,  const axis2_char_t *username, void *param) {
100
 
  /*First set pf password are for sample usernames*/
101
 
  axis2_char_t * pw = NULL;
102
 
  char pwFile[1024];
103
 
  char pass[1024];
104
 
  char *euca_home;
105
 
  FILE *FH;
106
 
 
107
 
  euca_home = getenv("EUCALYPTUS");
108
 
  if (!euca_home) {
109
 
    snprintf(pwFile, 1024, "/var/lib/eucalyptus/keys/pw");
110
 
  } else {
111
 
    snprintf(pwFile, 1024, "%s/var/lib/eucalyptus/keys/pw", euca_home);
112
 
  }
113
 
 
114
 
  if (0 == axutil_strcmp(username, "CLUSTER") || 0 == axutil_strcmp(username, "CLOUD") || 0 == axutil_strcmp(username, "eucalyptus")) {
115
 
    FH = fopen(pwFile, "r");
116
 
    if (FH) {
117
 
      if (fgets(pass, 1024, FH)) {
118
 
        pw = malloc(sizeof(axis2_char_t) * strlen(pass) + 32);
119
 
        strcpy(pw, pass);
120
 
      }
121
 
      fclose(FH);
122
 
    }
123
 
  } else {
124
 
    
125
 
  }
126
 
  return pw;
127
 
};
128
 
 
129
 
 
130
 
/**
131
 
 * Following block distinguish the exposed part of the dll.
132
 
 */
133
 
AXIS2_EXPORT int
134
 
axis2_get_instance(rampart_callback_t **inst,
135
 
        const axutil_env_t *env)
136
 
{
137
 
    rampart_callback_t* rcb = NULL;
138
 
 
139
 
    rcb = AXIS2_MALLOC(env->allocator,
140
 
            sizeof(rampart_callback_t));
141
 
 
142
 
    rcb->ops = AXIS2_MALLOC(
143
 
                env->allocator, sizeof(rampart_callback_ops_t));
144
 
 
145
 
    /*assign function pointers*/
146
 
 
147
 
    rcb->ops->callback_password = get_sample_password;
148
 
    rcb->ops->free = my_free_function;
149
 
 
150
 
    *inst = rcb;
151
 
 
152
 
    if (!(*inst))
153
 
    {
154
 
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][pwcb_sample] Cannot initialize the PWCB module");
155
 
        return AXIS2_FAILURE;
156
 
    }
157
 
 
158
 
    return AXIS2_SUCCESS;
159
 
}
160
 
 
161
 
AXIS2_EXPORT int
162
 
axis2_remove_instance(rampart_callback_t *inst,
163
 
        const axutil_env_t *env)
164
 
{
165
 
    axis2_status_t status = AXIS2_FAILURE;
166
 
    if (inst)
167
 
    {
168
 
        status = my_free_function(inst, env);
169
 
    }
170
 
    return status;
171
 
}
172