Showing posts with label Weblogic. Show all posts
Showing posts with label Weblogic. Show all posts

Wednesday, November 30, 2011

Resetting Weblogic Server Admin Password

Resetting Weblogic Server Admin Password:

Steps to reset the admin password of weblogic server.

  • cd <DOMAIN_HOME>/security
  •  Rename DefaultAuthenticatorInit.ldift file to DefaultAuthenticatorInit.ldift_BKP
  • Set the Environment - <DOMAIN_HOME>/bin/setDomainEnv.cmd
  • java -cp <WLS_HOME>;/server/lib/weblogic.jar:$CLASSPATH weblogic.security.utils.AdminAccount NewAdminUser NewAdminPassword . (Note the . at the end of the command)
  Make sure you are running the above command is executed from    DOMAIN_HOME>/security,   if you are executing the command from other location copy the   DefaultAuthenticatorInit.ldift file created in the current location to <DOMAIN_HOME>/security
e.g java -cp C:\Oracle\MiddlewareSOA\wlserver_12.1\server\lib\weblogic.jar;%CLASSPATH% weblogic.security.utils.AdminAccount albin albin123  
  • Move data directory under $DOMAIN_HOME/servers/<serverName>/datato another directory like data.bak
  •  Edit user name and password in the following file - <DOMAIN_HOME>/servers/<Server Name>/security/boot.properties
  • Restart the admin server

Wednesday, October 26, 2011

Oracle SOA Suite – Creating weblogic database resources through WLST

Oracle SOA Suite – Creating weblogic database resources through WLST:


WLST script can be use to create the data sources and set the different configuration parameters in weblogic server.
Here we will use the property file to configure the data source details, the WLST script will create the data sources in the server based on the property file.
Just edit the JDBCResources.properties file with the data source details.

JDBCResources.properties

DBURL=jdbc:oracle:thin:@::EAIDB14A
domain.AdminIP=xxxxxxxxx
domain.AdminPort=xxxx
domain.AdminPasswd=xxxxx

datasource.connectionpool.driver.class=oracle.jdbc.OracleDriver
datasource.connectionpool.test.query=SQL SELECT * FROM DUAL
datasource.total=2

datasource.prefix.1=xref
datasource.xref.connectionpool.name.1=ESBXRefDataConnectionPool
datasource.xref.connectionpool.username.1=SOA_SOAINFRA
datasource.xref.connectionpool.password.1=val11g
datasource.xref.connectionpool.initCapacity.1=10
datasource.xref.connectionpool.maxCapacity.1=60
datasource.xref.name.1=ESBXRefDataSource
datasource.xref.jndi.name.1=eai/ds/EAIXRef
datasource.xref.target.1=Clusters/SOACluster,Clusters/WLSCoreCluster

datasource.prefix.2=om
datasource.om.connectionpool.name.2=OMConnectionPool
datasource.om.connectionpool.username.2=SOA_EAIOWNER
datasource.om.connectionpool.password.2=val11g
datasource.om.connectionpool.initCapacity.2=10
datasource.om.connectionpool.maxCapacity.2=180
datasource.om.name.2=CRM6EAIReference
datasource.om.jndi.name.2=eai/ds/EAIReference
datasource.om.target.2=Clusters/SOACluster,Clusters/WLSCoreCluster


The below WLST code snippet will create the required data sources and set the corresponding connection parameters to the data source.

JDBCResourceCreation.py

from java.io import FileInputStream
def createJDBCResources():
propInputStream = FileInputStream("JDBCResources.properties")
configProps = Properties()
configProps.load(propInputStream)
adminURL='t3://'+configProps.get('domain.AdminIP')+':'+configProps.get('domain.AdminPort')
adminUserName='weblogic'
adminPassword=configProps.get("domain.AdminPasswd")
connect(adminUserName, adminPassword, adminURL)
edit()
startEdit()
totalDataSource_to_Create=configProps.get("datasource.total")
server='AdminServer'
cd("Servers/"+server)
target=cmo
cd("../..")
print '========================================='
print 'Creating DataSource....'
print '========================================='
dsTestQuery=configProps.get("datasource.connectionpool.test.query")
dsDriverName=configProps.get("datasource.connectionpool.driver.class")
i=1
while (i <= int(totalDataSource_to_Create)) :
#try:
cd('/')
prefix = configProps.get("datasource.prefix."+ str(i))
poolName = configProps.get("datasource."+prefix+".connectionpool.name."+ str(i))
dsUserName = configProps.get("datasource."+prefix+".connectionpool.username."+ str(i))
dsPassword = configProps.get("datasource."+prefix+".connectionpool.password."+ str(i))
initCapacity = configProps.get("datasource."+prefix+".connectionpool.initCapacity."+ str(i))
maxCapacity = configProps.get("datasource."+prefix+".connectionpool.maxCapacity."+ str(i))
dsName = configProps.get("datasource."+prefix+".name."+ str(i))
jndiname = configProps.get("datasource."+prefix+".jndi.name."+ str(i))
datasourceTargets = configProps.get("datasource."+prefix+".target."+ str(i)).split(",")
print 'prefix',prefix
print 'poolName',poolName
print 'dsUserName',dsUserName
print 'dsPassword',dsPassword
print 'initCapacity',initCapacity
print 'maxCapacity',maxCapacity
print 'dsName',dsName
print 'jndiname',jndiname
print 'datasourceTargets',datasourceTargets
print 'Creating DataSource: ',dsName,' ....'
print("")
print("*** Creating JDBC with property prefix " + prefix)
myResourceName = dsName
print("Here is the Resource Name: " + myResourceName)
jdbcSystemResource = create(myResourceName,"JDBCSystemResource")
myFile = jdbcSystemResource.getDescriptorFileName()
print ("HERE IS THE JDBC FILE NAME: " + myFile)
jdbcResource = jdbcSystemResource.getJDBCResource()
jdbcResource.setName(myResourceName)
# Create the DataSource Params
dpBean = jdbcResource.getJDBCDataSourceParams()
myName=jndiname
dpBean.setJNDINames([myName])
#dpBean.setGlobalTransactionsProtocol('EmulateTwoPhaseCommit')
dpBean.setGlobalTransactionsProtocol('None')
# Create the Driver Params
drBean = jdbcResource.getJDBCDriverParams()
drBean.setPassword(dsPassword)
drBean.setUrl(configProps.get("DBURL"))
drBean.setDriverName(dsDriverName)
propBean = drBean.getProperties()
driverProps = Properties()
driverProps.setProperty("user",dsUserName)
e = driverProps.propertyNames()
while e.hasMoreElements() :
propName = e.nextElement()
myBean = propBean.createProperty(propName)
myBean.setValue(driverProps.getProperty(propName))
# Create the ConnectionPool Params
ppBean = jdbcResource.getJDBCConnectionPoolParams()
ppBean.setInitialCapacity(int(initCapacity))
ppBean.setMaxCapacity(int(maxCapacity))
ppBean.setTestConnectionsOnReserve(true)
ppBean.setTestTableName('SQL SELECT 1 FROM DUAL')
# Adding KeepXaConnTillTxComplete to help with in-doubt transactions.
xaParams = jdbcResource.getJDBCXAParams()
xaParams.setKeepXaConnTillTxComplete(1)
# Add Target
for datasourceTarget in datasourceTargets:
print 'DataSourceTargets',datasourceTargets
print 'DataSourceTarget',datasourceTarget
if datasourceTarget=='':
print ''
else:
jdbcSystemResource.addTarget(getMBean(datasourceTarget))
print 'DataSource: ',dsName,', has been created Successfully !!!'
print '========================================='
#except:
#print '***** CANNOT CREATE DATASOURCE !!! Check If the DataSource With the Name : ' , dsName ,' Alreday exists or NOT...'
#print ''
i = i + 1
print '========================================='
save()
activate()
disconnect()

def main():
createJDBCResources();
print 'Successfully created JDBC resources for SOACoreDomain'
main()

Execute the WLST script that will create the required data sources and set the corresponding parameters.
>$ORACLE_HOME/common/bin/wlst.sh JDBCResourceCreation.py

Download: JDBCResourceCreation.py  JDBCResources.properties

Oracle SOA Suite – Creating Weblogic users and assign SOA and weblogic roles through WLST


Oracle SOA Suite – Creating Weblogic users and assign SOA and weblogic roles through WLST:

WLST script can be use to create the required users in Weblogic and to assign the required SOA and weblogic roles to the user.
Here we will use the property file to configure the user details,the WLST script will create the users in the server based on the property file.
Weblogic roles control the access permission of weblogic server and the SOA roles control the access permission of the EM console.
Just edit the UserManagement.properties with the users and group details.

UserManagement_SOADomain.properties


admin.url=t3://xxxxxxxx:8000
admin.userName=weblogic
admin.password=xxxxxxx
total.username=7
#
create.user.name.1=adminuser
create.user.password.1=Test1234
create.user.description.1= This is a Backup Administrator User
#Comma seperated roles
create.user.groups.1=Administrators
create.user.soarole.1=SOAAdmin,SOADesigner

create.user.name.2=soaadminuser
create.user.password.2=Test1234
create.user.description.2= This is a SOA ADMIN User Two
#Comma seperated roles
create.user.groups.2=Deployers,Operators,Monitors,IntegrationDeployers
create.user.soarole.2=SOAAdmin

create.user.name.3=nfttestuser
create.user.password.3=Test1234
create.user.description.3= This is a Test User Three
#Comma seperated roles
create.user.groups.3=Monitors,IntegrationMonitors
create.user.soarole.3=SOAMonitor,SOAAuditViewer

create.user.name.4=devtestuser
create.user.password.4=Test1234
create.user.description.4= This is a DEV User Three
#Comma seperated roles
create.user.groups.4=Deployers,IntegrationDeployers,IntegrationMonitors,Monitors,Operators
create.user.soarole.4=SOADesigner,SOAMonitor

WLST Script:

The below WLST code snippet will create the required users and assign the corresponding roles to the user.

UserManagement_SOADomain.py

from java.io import FileInputStream
from java.util import *
from javax.management import *

domainName=raw_input('Please enter the weblogic domain name for the user creation: ')
print 'domainName:',domainName

propInputStream = FileInputStream("UserManagement_"+domainName+".properties")
configProps = Properties()
configProps.load(propInputStream)

adminURL=configProps.get("admin.url")
adminUserName=configProps.get("admin.userName")
adminPassword=configProps.get("admin.password")
realmName=configProps.get("security.realmName")
totalUsers_to_Create=configProps.get("total.username")

connect(adminUserName, adminPassword, adminURL)
serverConfig()
authenticatorPath= '/SecurityConfiguration/' + domainName + '/Realms/myrealm/AuthenticationProviders/DefaultAuthenticator'
print authenticatorPath

cd(authenticatorPath)

print 'Creating Users . . .'

x=1
while (x <= int(totalUsers_to_Create)):
userName = configProps.get("create.user.name."+ str(x))
userPassword = configProps.get("create.user.password."+ str(x))
userDescription = configProps.get("create.user.description."+ str(x))
try:
cmo.createUser(userName , userPassword , userDescription)
print '-----------User Created With Name : ' , userName
except Exception, e:
print e
x = x + 1

print ' '
print ' '

print 'Adding Group Membership of the Users:'
y=1
while (y <= int(totalUsers_to_Create)):
grpNames = configProps.get("create.user.groups."+ str(y)).split(",")
userName = configProps.get("create.user.name."+ str(y))
for grpName in grpNames:
if grpName=='':
print ''
else:
cmo.addMemberToGroup(grpName,userName)
print 'USER:' , userName , 'Added to GROUP: ' , grpName

y=y+1

print 'Adding SOA Roles Membership of the Users:'
y=1
while (y <= int(totalUsers_to_Create)):
roleNames = configProps.get("create.user.soarole."+ str(y)).split(",")
userName = configProps.get("create.user.name."+ str(y))
for roleName in roleNames:
if roleName=='':
print ''
else:
grantAppRole(appStripe="soa-infra", appRoleName=roleName,principalClass="weblogic.security.principal.WLSUserImpl", principalName=userName)
print 'USER:' , userName , 'Added the Role: ' , roleName
y=y+1

Execute the WLST script that will create the required users and assign the corresponding roles.
>$ORACLE_HOME/common/bin/wlst.sh UserManagement_SOADomain.py

Download: UserManagement_SOADomain.properties  UserManagement_SOADomain.py