2
Copyright (c) 2009 Eucalyptus Systems, Inc.
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.
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
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/>.
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.
20
This file may incorporate work covered under the following copyright and
23
Software License Agreement (BSD License)
25
Copyright (c) 2008, Regents of the University of California
28
Redistribution and use of this software in source and binary forms, with
29
or without modification, are permitted provided that the following
32
Redistributions of source code must retain the above copyright notice,
33
this list of conditions and the following disclaimer.
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.
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.
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
68
* http://www.apache.org/licenses/LICENSE-2.0
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.
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>
90
axis2_status_t AXIS2_CALL
91
my_free_function(rampart_callback_t *rcb,
92
const axutil_env_t *env)
94
AXIS2_FREE(env->allocator, rcb->ops);
95
AXIS2_FREE(env->allocator, rcb);
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;
107
euca_home = getenv("EUCALYPTUS");
109
snprintf(pwFile, 1024, "/var/lib/eucalyptus/keys/pw");
111
snprintf(pwFile, 1024, "%s/var/lib/eucalyptus/keys/pw", euca_home);
114
if (0 == axutil_strcmp(username, "CLUSTER") || 0 == axutil_strcmp(username, "CLOUD") || 0 == axutil_strcmp(username, "eucalyptus")) {
115
FH = fopen(pwFile, "r");
117
if (fgets(pass, 1024, FH)) {
118
pw = malloc(sizeof(axis2_char_t) * strlen(pass) + 32);
131
* Following block distinguish the exposed part of the dll.
134
axis2_get_instance(rampart_callback_t **inst,
135
const axutil_env_t *env)
137
rampart_callback_t* rcb = NULL;
139
rcb = AXIS2_MALLOC(env->allocator,
140
sizeof(rampart_callback_t));
142
rcb->ops = AXIS2_MALLOC(
143
env->allocator, sizeof(rampart_callback_ops_t));
145
/*assign function pointers*/
147
rcb->ops->callback_password = get_sample_password;
148
rcb->ops->free = my_free_function;
154
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][pwcb_sample] Cannot initialize the PWCB module");
155
return AXIS2_FAILURE;
158
return AXIS2_SUCCESS;
162
axis2_remove_instance(rampart_callback_t *inst,
163
const axutil_env_t *env)
165
axis2_status_t status = AXIS2_FAILURE;
168
status = my_free_function(inst, env);