Actions containing Plug-ins?
I'd like to be able to construct some Actions which use third-party Plug-ins - can anyone point me to a tutorial on this? Is it even generally possible ....? The simpler the construction scheme the better. I'm working with CS5. Thanks for any assistance.
Jeff Schewe wrote:
The only limitation with recording actions with 3rd part plug-ins is the dependency on having those plug-ins installed. If you record an action with a 3rd party plug-in and that plug-in is not available, it will error out. An example would be if 3rd party plug-in with only 32 bit support is recorded and you try running the action in 64 bit.
There is more to it then that. As Noel pointed out the plug-in must include code that will record the setting used during recording an action into the action step. Without that code the action may record a step but it will not have recorded setting. I have one old free prugin from Reindeer Graphics "SelectEdges.8bs" installed on my system which I cam use without a problem manually. However if I try to record using it in an action no step is recorded into the action. I have to insert a stop message to have the user use menu Select>OPTIPIX>Select Edges and also include instruction for the setting to use. Then have the user continue the action by clicking on play.
There are several types of plug-ins those the are compiled and others that are scripted interpeted code. Compile code may have a dependency on 32bit support or 64bit support. Photoshop Scripting in CS3 Adobe added Prug-in support and changed the compiled Fit Image Plugin to a script. Additionaly some changes to scripting plug-in support were made in CS4 and CS5. Changes were also may to the way the Action recorded records these step. CS3, and CS5 do not record these step the same way CS3 recorded the script full path into the action step so the script can be any where on your system. CS5 does not record the path so the script must be in Photoshop script path which can be extended to other path by adding shortcut links to the script folder in Photoshop scripts folder. Window 7 or Photoshop also through in a monkey wrench with 64 and 32 bit support when resolving "Program File" in the path name. Scripts will work with both versions of Photoshop 64 and 32 Bit so there is no need for two version or script folders. I created a folder C:\Programs Files\Adobe\Scripts\ where I store my scripts and I placed a link to this tree into Photoshop Presets/Scripts I did the same when I upgraded to Windows 7. I added this link to both versions of Photoshop 32 and 64 bit thogh both links are to C:\Programs Files\Adobe\Scripts\ when Photoshop 32bit exe is run some peice of code add a " (x86)" to "Program Files" so I created the path and dupe my tree there. I may try moving where I store my script from C:\Programs Files\Adobe\Scripts\ to C:\Adobe\Scripts\ to get "Programs Files" out of the picture.
Similar Messages
-
Up-grading to CS5 and about actions and plug-ins
Is there a fast, easy way to import my actions and additional plug-ins from my CS4 photoshop to my new upgraded CS5 photoshop. Or do I have to install them all over, individually? HELP!
Don't try for "fast and easy". You will more likely get into trouble - this has been shown time and again.
Plug-ins:
See if the manufacturer has released an update that's Photoshop CS5-compatible and get that if so.
Run the installer if they provided one.
If the installer doesn't see the new Photoshop, you may have to isolate the plug-in files (there may be supporting files) and copy them manually. If this is the case, let us know here in a follow-up message - the description how to do that can be complex.
Create a new folder, separate from Photoshop's installation area and one you're going to keep, into which to put manually-installed plug-ins. Point Photoshop's Extra Plug-ins folder at the new folder.
For those plug-ins without installers, copy your manually-installed plug-ins to your new folder. Restart Photoshop CS5 to get it to see them there.
Actions:
Older actions are usually perfectly compatible with Photoshop CS5, but it doesn't hurt to check to see if the maker has issued a newer set.
For those that you created, modified, or don't know where you got, in your older Photoshop click the set name once to highlight it, then click the little fly-out icon at the upper-right of the ACTIONS panel, and choose Save Actions. Save them in a folder separate from the Photoshop installation area.
You can usually just double-click a .atn file to load it into the newer version of Photoshop. If not, use the fly-out menu and choose Load Actions.
-Noel -
Help Upgrading Actions/filters/plug-ins
When you do an upgrade to CS5, I assume you can just copy the actions files to the new location, and then load them. But what bout plug-ins/filters/scripts?
Woudl you have to find the actual old install files and run through those again?
For example, I have One-on-One software and Mystical Lighting that I use from time to time. Must I re-install those or download their install packages again? I don't think I could just cop those over to the new folder correct?if you have 32 bit plugins, use them with the 32 bit installation of ps.
-
Hi,
I wondered if someone could help me with the transition from CS5 to CS6 (Creative Cloud). I'm on a Mac with Mountain Lion.
I would like to migrate as many settings (i.e. workspaces where relevant), personal Photoshop actions, plug-ins (i.e. Type DNA, FontShop [Photoshop], Scriptographer [Illustrator] and Blurb Template Creator [InDesign]) as possible from CS5 to CS6. What is the easiest and smoothest way to do this?
Some settings, actions and plug-ins might not work with CS6, I don't know. I can't find where my Photoshop actions are archived atm.
Can I import extensions from Adobe Extension Manager CS5 to Adobe Extension Manager CS6?
Should I uninstall all CS5 apps? I'd like to keep InDesign CS5 for backwards compatibility at least.
Does Audition completely replace Soundbooth? What about Flash Catalyst, Device Central and OnLocation?
Edit: I have already installed all the Creative Cloud applications btw. But I haven't uninstalled any CS5 apps yet.
Thanks,
EivindHi Elvind,
I would suggest keeping both CS5 and CS6 versions on the system until you are fully transitioned, longer if you want. When you launch Photoshop CS6 it will ask you if you want to import settings from the prior version. Third party plug-ins may or may not be compatible between versions so you might need to check with the manufacturer to find out. You would most likely need to reinstall any third party plug-ins that integrate into existing Adobe product installations though.
I found this document for Photoshop CS6
http://helpx.adobe.com/photoshop/kb/preset-migration-photoshop-cs6.htm l
For the PS actions, I normally open the actions panel, highlight the actions set (folder) I wanted to migrate, from the flyout menu of the panel choose the option to save the set, this creates the .atm file. There is another option for importing actions in the same menu.
I can't speak to migrating in relation to the other products. I would recommend posting in the respective product forums.
-Dave -
Firefox plug in container has stopped working, even in safe mode with plug ins disabled
My firefox keeps crashing every 5 - 10 minutes. Sometimes I get a windows error message saying "firefox plugin container stopped working", but most times I don't. These are the actions I've taken so far, with no effect:
1. Updated all my plug-ins
2. Run firefox in safe mode with plug-ins disabled
3. Uninstalled and reinstalled firefox
4. Run an AVG scan which turned up nothing
Can anyone offer advice on how to fix this (very annoying) problem?
I've had to write this in IE because firefox wouldn't stay open long enough for me to copy and paste it into the text box.Try creating a new Profile by following the steps from [[Managing Profiles]] [[Troubleshooting extensions and themes]] and also [[The Adobe Flash plugin has crashed]]
-
Trying to download adobe program adobe photoshop CS5 Optional Automate Plug-ins, but get a message that it does not contain valid signature and it won't install the app. Can someone help with this please? Trying to reach Adobe by phone is impossible.
evFirst, have you installed all the updates for photoshop cs5 by going to Help>Updates from within photoshop cs5?
The automated installer only installs the following plugins:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=4965
The following plug-ins and associated files are available via an installer:
Automate Plug-Ins:
• Contact Sheet II
• Picture Package (ContactSheetII)
• Web Photo Gallery (WebContactSheetII) plus presets
• Script for Layer Comps to Web Photo Gallery
Other Optional Plug-Ins:
• TWAIN
Other plugins including the pattern maker plugin need to be installed manually using this download:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=4964 -
I just "upgraded" from Photoshop CS6 to Photoshop CC.
How do I get all my apps, plug ins, actions, automate apps, brushes, etc. from Photoshop CS6 onto/into the proper folders in Photoshop CC so I can use them in CC?
My OS is Mac OSX 10.7.5.
Thanks. VMS2Thanks, Chris.
By "apps", I meant things appearing under Automate, like Perfect Resize, Photomate, etc. All I know to call them is apps, since it sounds stupid to me to call them "automates". I should know, but I don't remember the nomenclature for them.
I guess I have to find the software producer names and go to their tech help, do I not?
Thanks. VMS2 -
Batch file to "Disable" un-used plug-ins etc.
Hi Folks!!
I've got into the habit (from the good old, small PC, WinXP days) of disabling with the pre-fix ~ (tilde) method, all the presets and plug-ins that I never use as soon as I install Photoshop.
Doing it manually in those days was not too much of a hardship as maybe, at worst twice a year.
Now that I've upgraded(?) to Win7, I must have done a "clean" system re-install at least once a month, the manual method is getting a bit tedious.
I'd like to have batch script(s) to automate/semi-automate the process so that I could open a command prompt at the root (C:\) and tell it to go to the swatches folder and prefix A, C, and D leaving B, E, and F untouched, then move on to the brushes folder, patterns folder, plug-ins folder etc. etc..
I've got a list of my usual "suspects", I've tried to write one myself (with no knowledge of what I'm doing) and so far I've managed to (luckily, but not repeated!!) get the first one on the list renamed followed by 50 or so "The *** path is not recognised/ The *** path is not a correct command/ The syntax is incorrect/ That's not your dog on your path" etc. etc.
Is this at all possible? I'd settle for several batch files, one for each folder, that I could just type their names in whilst looking at my pretty desktop instead of traipsing through the system folders, if that's what it takes.
HELP!!
Yours
Raggedy Round The Edges
Elmer (very) B. Fuddled
Message was edited by: Elmer B. Fuddled Speeling MistooksThanks for your response Noel,
A corrected link to M$ answers (maybe)
Originally i did do a lot of the "disabling" to save space when I was running WinXP on an old Packard Bell with a 60gb main HDD (don't laugh, that was an "upgrade" from the 20gb HDD!!) Now I've gone up in the world to Win7 with (to me) a huge 320gb HDD it's more an aesthetics / efficiency thing.
First example, the drop down window you get when you hit "Save As..."
I've never yet used any of the formats in PS high-lighted in green, the yellows are "very seldom used" and the rest, yes I do use. So if I can "hide" the ones I don't use, and I know I can't hide them all, the ones I do use are not hiding in a multitude of others.
When it comes to the Colour Swatches, not books, in the Preset Manager, after I've loaded my own "ICO" files it can get quite horrendous!!
The Full House
Now after I've removed all the Pantone etc. that I never touch, leaving only a couple I was "advised" to on t'interweb plus my own collection of palettes, some of which may only contain four colours..
Oooh!! I can see me canvas again!!
So much neater!
Bear in mind I'm not actually deleting anything so if I ever do need them, they are only a tilde away!!
I disable any plug-ins I don't, didn't or couldn't use when on WinXP due to hardware restraints (well the PC was salvaged from a skip!!) and I've managed to live without them.
The same sort of thing goes for the brushes, I've assembled my own .abr's from the supplied Adobe sets that I may only just use and disabled all the rest.
For brushes you can also read File Formats, Actions, Custom Shapes and Gradients
The script "Wot I Ave Wrote" looks like this (abridged)
@echo off cls
set windrive=%1
echo The Adobe installed Plug-ins and Presets listed in the "Read Me" file will
echo will be prepended with a tilde (~) which will disable/hide them.
echo.
echo Do you wish to continue?
set /p choice=Please press "Y" for yes or "N" for no:
if %choice%==y goto moveon
if %choice%==n goto dontmove
:moveonren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\Cineon.8BI" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~Cineon.8BI"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\Dicom.8BI" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~Dicom.8BI"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\FastCore.8BX" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~FastCore.8BX"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\JPEG2000.8BI" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~JPEG2000.8BI"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\MMXCore.8BX" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~MMXCore.8BX"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\PBM.8BI" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~PBM.8BI"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\Pixar.8BI" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~Pixar.8BI"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\Radiance.8BI" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~Radiance.8BI"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\Standard MultiPlugin.8BF" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\~Standard MultiPlugin.8BF"
ren "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\WBMP.8BI" "C:\PROGRAM FILES (X86)\ADOBE\ADOBE BRIDGE CS5\Plug-Ins\Import-Export\~FireWire Export.8BE"
echo .
echo .
echo Whoopy Doo!!! Won't be seeing those again unless you want to! :-)
echo .
pause
exit /B n
:dontmove
echo .
echo The Batch File execution has been cancelled.
pause
And that's about it, all the red bits I've borrowed from elsewhere so I'm none the wiser of what they really do!!
Any sites I've "visited" tell me that /1 /2 %WhoKnows% does "X", but not why it does!! So I gave up
Oh, BTW, using bridge as my guinea-pig as I never use it.
Could never get it to run on me XP machine so I looked elsewhere and I've never looked back again.
Regards
Elmer (more bemused than)B. Fuddled
Message was edited by: Elmer B. Fuddled Resizing images -
http://www.panosfx.com/index.php?option=com_frontpage&Itemid=1 contains some interesting free plug ins, officially for Photoshop 6 and above.
Has anyone got them to work in PSE ? If so, how ?Hi Malcolm ...
All of the actions I have checked are complex set which don't work in Elements :(
Wendy -
FireFox 3.6.8 & ThunderBird 3.1.2 check for updates never connects, nor does plug-in update or get plug-ins
I am doing several re-installs.
I installed FireFox 3.6.8 and ThunderBird 3.1.2 on a fresh install of Windows XP Home SP3 x32.
All Windows updates and IE8, etc were done first after the WinXP install.
IE8 works fine.
Firefox can connect to the internet to view webpages, but NOT do a check for a newer version.
(by going, on the main menu at the top, to Help --> Check for updates...)
Neither can Tbird.
See screenshots below.
Neither Tbird nor Firefox will complete the add-ons check nor updates nor 'Browse All Add-ons' feature.
(by going, on the main menu at the top, to Tools --> Add-ons --> Get Add-ons {upper left} or Find Updates {lower right for any of the selections})
Another computer, same 'build' (different hardware, but WinXP SP3, etc) using a connection from the same router going out to the internet works fine, so it is not an overall connection problem outside of the individually affected computer.
There is not yet any anti-virus nor firewall, etc installed that could be blocking things, except for Windows built in firewall, and there is no blocking action showing. Disabling it did not solve the issue.
6 hours of searching has not found an answer. Trying some of the search results just to see has not proven to be successful.
Thanks.dianej,
Try this, go to tools, add-ons, extensions. if you have more than one (the latest) Java consoles, uninstall them. You only need the latest console and it should match the Java Platform in Plugins.
I had a VERY similar problem displaying weatherunderground. It would not display the pages correctly and I would get pages of errors that stated
"window.addEvent is not a function" I spent the last two hours fixing this problem. All I did was remove the 6.0.18, 6.0.19, 6.0.20 Java consoles from my 3.6.8 Firefox. After a FF restart, no more errors.
There should be more information in FF when you update Java. No one tells you that you should go in and delete the older consoles.
Good luck
Mick -
Multiple plug-ins in one file (CodeCarbonPowerPC)?
I'm trying to put 3 plug-ins in one file.
Very simple on Windows (3 PiPL resource blocks with different entrypoints).
And don't worked on PowerPC:
CodeCarbonPowerPC(0,0,"") <-- what is last parameter (string)?
Any example?
Thanks,
Ivan KharinApologies for the confusion, that's a "custom" PiPL.r created some time ago before I saw the PS7 SDK, Adobe called it something different. You'll have to refer to the official SDK for the precise name but in other respects it's identical of course. I've never used the third parameter, but my v6 documentation describes it as follows:
Pstring fEntryName
Pascal string used to lookup the address of the function
to call within the fragment. In order for the Code
Fragment Manager to find an entrypoint by name,
that name must be an exported symbol of the code
fragment. If NULL, the default entrypoint will be used.
fEntryName allows a single code fragment to contain
more than one plug-in.
One day I mean to regularise my sources to match their official published selectors for Carbon CFM and Mach-O... The disparity is an artefact of the SDK's Iron Curtain period. -
Authentication Plug-ins for active directory Multiple Domains(oidspad2.sh)
hi ,
i have use note 294791.1 from metalink to try link to active directory i have 2 one is staff and another is student
i first ran oidspadi.sh to create plugin for staff it works then i edit the 2 script to oidspad2.pls and oidspad2.sh with the require changes inside the files then i ran it it work but now the problem is the first ad now cant work this is my changes below
FOR oidspad2.pls
Rem
Rem $Header: oidspada.pls 02-aug-2004.04:45:11 saroy Exp $
Rem
Rem oidspads.pls
Rem
Rem Copyright (c) 2002, 2004, Oracle. All rights reserved.
Rem
Rem NAME
Rem oidspada.pls - 9.0.4 OID Password Active Directory
Rem External Authentication Plug-in
Rem
Rem
Rem NOTES
Rem <other useful comments, qualifications, etc.>
Rem
Rem MODIFIED (MM/DD/YY)
Rem saroy 08/02/04 - Fix for bug 3807482
Rem qdinh 01/27/04 - bug 3374115
Rem dlin 01/08/04 - pingan perf
Rem dlin 08/22/03 - 3111770 bug fix
Rem dlin 08/27/03 - change the way to get name
Rem dlin 08/13/03 - bug 2962082 fix
Rem dlin 02/21/03 - plug-in install changes
Rem dlin 02/13/03 - dlin_bug-2625027
Rem dlin 02/05/03 - fix ssl & failover
Rem dlin 01/31/03 - dlin_adextauth1
Rem dlin 01/30/03 - Created
Rem
SET echo off;
SET serveroutput off;
SET feedback off;
SET verify off;
CREATE OR REPLACE PACKAGE OIDADPSW2 AS
PROCEDURE when_bind_replace (ldapplugincontext IN ODS.plugincontext,
result OUT INTEGER,
dn IN VARCHAR2,
passwd IN VARCHAR2,
rc OUT INTEGER,
errormsg OUT VARCHAR2
PROCEDURE when_compare_replace (ldapplugincontext IN ODS.plugincontext,
result OUT INTEGER,
dn IN VARCHAR2,
attrname IN VARCHAR2,
attrval IN VARCHAR2,
rc OUT INTEGER,
errormsg OUT VARCHAR2
AD_HANDLE DBMS_LDAP.session DEFAULT NULL;
END OIDADPSW2;
SHOW ERROR
CREATE OR REPLACE PACKAGE BODY OIDADPSW2 AS
SUBTYPE LDAP_SESSION IS RAW(32);
SUBTYPE LDAP_MESSAGE IS RAW(32);
SUBTYPE LDAP_BER_ELEMENT IS RAW(32);
SUBTYPE ATTRLIST IS DBMS_LDAP.STRING_COLLECTION;
SUBTYPE MOD_ARRAY IS RAW(32);
SUBTYPE BERLIST IS DBMS_LDAP.BERVAL_COLLECTION;
PROCEDURE when_bind_replace (ldapplugincontext IN ODS.plugincontext,
result OUT INTEGER,
dn IN VARCHAR2,
passwd IN VARCHAR2,
rc OUT INTEGER,
errormsg OUT VARCHAR2
IS
retval pls_integer;
lresult BOOLEAN;
my_session DBMS_LDAP.session;
my_session1 DBMS_LDAP.session;
tmp_session DBMS_LDAP.session;
adupname VARCHAR2(1024) DEFAULT NULL;
BEGIN
plg_debug( '=== Begin when_bind_replace()');
DBMS_LDAP.USE_EXCEPTION := FALSE;
result := 49;
adupname := LDAP_PLUGIN.get_adupname(ldapplugincontext);
IF (adupname IS NULL) THEN
result := 1;
plg_debug('Can not get ADUserPrincipalName');
rc := DBMS_LDAP.SUCCESS;
errormsg := 'Exception in when_bind_replace: Can not get ADUserPrincipalName';
plg_debug( '=== End when_bind_replace() ===');
RETURN;
END IF;
plg_debug( 'Go to AD for authentication');
-- externally authenticate user
IF ('&1' = 'n') THEN
IF (OIDADPSW2.AD_HANDLE IS NULL) THEN
my_session := DBMS_LDAP.init('&2', &3);
OIDADPSW2.AD_HANDLE := my_session;
ELSE
my_session := OIDADPSW2.AD_HANDLE;
END IF;
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session,1,8)));
retval := DBMS_LDAP.simple_bind_s(my_session, adupname, passwd);
plg_debug( 'simple_bind_res: ' || TO_CHAR(retval));
-- Retry logic should be invoked only
-- when retval = LDAP_UNWILLING_TO_PERFORM || LDAP_UNAVAILABLE
-- Should free the old session if retry logic kept failing
-- to cause the number of outstanding sessions exceeding the
-- limit session number
IF (retval = 52 OR retval = 53 OR retval = 81) THEN
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
my_session1 := DBMS_LDAP.init('&4', &5);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session1,1,8)));
tmp_session := my_session1;
retval := DBMS_LDAP.simple_bind_s(my_session1, adupname, passwd);
plg_debug( 'simple_bind_res again: ' || TO_CHAR(retval));
IF (retval != 52 AND retval != 53 AND retval != 81) THEN
OIDADPSW2.AD_HANDLE := tmp_session;
ELSE
retval := DBMS_LDAP.unbind_s(tmp_session);
plg_debug( 'unbind_res result ' || TO_CHAR(retval));
END IF;
END IF;
ELSE
-- SSL bind
IF (OIDADPSW2.AD_HANDLE IS NULL) THEN
my_session := DBMS_LDAP.init('&6', &7);
plg_debug( 'ldap_session initialized: ' || RAWTOHEX(SUBSTR(my_session,1,8)));
retval := DBMS_LDAP.open_ssl(my_session,
'file:' || '&8', '&9', 2);
IF (retval != 0) THEN
plg_debug( 'open_ssl failed error: ' || TO_CHAR(retval));
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
result := 82;
RETURN;
END IF;
plg_debug( 'open_ssl: ' || TO_CHAR(retval));
OIDADPSW2.AD_HANDLE := my_session;
ELSE
my_session := OIDADPSW2.AD_HANDLE;
END IF;
retval := DBMS_LDAP.simple_bind_s(my_session, adupname, passwd);
plg_debug( 'simple_bind_res: ' || TO_CHAR(retval));
-- Retry logic should be invoked only
-- when retval = LDAP_UNWILLING_TO_PERFORM
-- or LDAP_UNAVAILABLE
IF (retval = 52 OR retval = 53 OR retval = 81) THEN
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
my_session1 := DBMS_LDAP.init('&10', &11);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session1,1,8)));
tmp_session := my_session1;
retval := DBMS_LDAP.open_ssl(my_session1,
'file:' || '&12', '&13', 2);
IF (retval != 0) THEN
plg_debug( 'retry open_ssl failed error: ' || TO_CHAR(retval));
retval := DBMS_LDAP.unbind_s(my_session1);
plg_debug( 'retry unbind_res returns ' || TO_CHAR(retval));
result := 82;
RETURN;
END IF;
plg_debug( 'retry open_ssl: ' || TO_CHAR(retval));
retval := DBMS_LDAP.simple_bind_s(my_session1, adupname, passwd);
plg_debug( 'simple_bind_res: again ' || TO_CHAR(retval));
IF (retval != 52 AND retval != 53 AND retval != 81) THEN
OIDADPSW2.AD_HANDLE := tmp_session;
ELSE
retval := DBMS_LDAP.unbind_s(tmp_session);
plg_debug( 'unbind_res Returns ' || TO_CHAR(retval));
END IF;
END IF;
END IF;
-- for failover to connect to the secondary server
IF ('&14' = 'y' AND retval != 0) THEN
IF ('&15' = 'n') THEN
IF (OIDADPSW2.AD_HANDLE IS NULL) THEN
my_session := DBMS_LDAP.init('&16', &17);
OIDADPSW2.AD_HANDLE := my_session;
ELSE
my_session := OIDADPSW2.AD_HANDLE;
END IF;
plg_debug( 'ldap_session initialized: ' || RAWTOHEX(SUBSTR(my_session,1,8)));
retval := DBMS_LDAP.simple_bind_s(my_session, adupname, passwd);
plg_debug( 'simple_bind_res: ' || TO_CHAR(retval));
IF (retval = 52 OR retval = 53 OR retval = 81) THEN
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
my_session1 := DBMS_LDAP.init('&18', &19);
plg_debug( 'retry ldap_session: ' || RAWTOHEX(SUBSTR(my_session1,1,8)));
tmp_session := my_session1;
retval := DBMS_LDAP.simple_bind_s(my_session1, adupname, passwd);
plg_debug( 'retry simple_bind_res again: ' || TO_CHAR(retval));
IF (retval != 52 AND retval != 53 AND retval != 81) THEN
OIDADPSW2.AD_HANDLE := tmp_session;
ELSE
retval := DBMS_LDAP.unbind_s(tmp_session);
plg_debug( 'unbind_res Returns ' || TO_CHAR(retval));
END IF;
END IF;
ELSE
IF (OIDADPSW2.AD_HANDLE IS NULL) THEN
my_session := DBMS_LDAP.init('&20', &21);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session,1,8)));
retval := DBMS_LDAP.open_ssl(my_session,
'file:' || '&22', '&23', 2);
IF (retval != 0) THEN
plg_debug( 'open_ssl failed error: ' || TO_CHAR(retval));
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
result := 82;
RETURN;
END IF;
plg_debug( 'open_ssl: ' || TO_CHAR(retval));
OIDADPSW2.AD_HANDLE := my_session;
ELSE
my_session := OIDADPSW2.AD_HANDLE;
END IF;
retval := DBMS_LDAP.simple_bind_s(my_session, adupname, passwd);
plg_debug( 'simple_bind_res: ' || TO_CHAR(retval));
-- Retry logic should be invoked only
-- when retval = LDAP_UNWILLING_TO_PERFORM || LDAP_UNAVAILABLE
IF (retval = 52 OR retval = 53 OR retval = 81) THEN
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
my_session1 := DBMS_LDAP.init('&24', &25);
plg_debug( 'retry ldap_session: ' || RAWTOHEX(SUBSTR(my_session1,1,8)));
tmp_session := my_session1;
retval := DBMS_LDAP.open_ssl(my_session1,
'file:' || '&26', '&27', 2);
IF (retval != 0) THEN
plg_debug( 'retry open_ssl failed error: ' || TO_CHAR(retval));
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'retry unbind_res returns ' || TO_CHAR(retval));
result := 82;
RETURN;
END IF;
plg_debug( 'retry open_ssl: ' || TO_CHAR(retval));
retval := DBMS_LDAP.simple_bind_s(my_session1, adupname, passwd);
plg_debug( 'simple_bind_res: again ' || TO_CHAR(retval));
IF (retval != 52 AND retval != 53 AND retval != 81) THEN
OIDADPSW2.AD_HANDLE := tmp_session;
ELSE
retval := DBMS_LDAP.unbind_s(tmp_session);
plg_debug( 'unbind_res result ' || TO_CHAR(retval));
END IF;
END IF;
END IF;
END IF;
IF (retval = 0) THEN
result := 0;
plg_debug('AD auth return TRUE');
ELSE
result := retval;
plg_debug('AD auth return FALSE or ERROR');
END IF;
-- retval := DBMS_LDAP.unbind_s(my_session);
-- plg_debug( 'unbind_res Returns ' || TO_CHAR(retval));
rc := DBMS_LDAP.SUCCESS;
errormsg := 'No error msg.';
plg_debug( '=== End when_bind_replace() ===');
EXCEPTION
WHEN OTHERS THEN
rc := DBMS_LDAP.OPERATIONS_ERROR;
retval := DBMS_LDAP.unbind_s(OIDADPSW2.AD_HANDLE);
OIDADPSW2.AD_HANDLE := NULL;
plg_debug( ' exception unbind_res returns ' || TO_CHAR(retval));
errormsg := 'Exception: when_bind_replace plugin';
plg_debug( 'Exception in when_bind_replace(). Error code is ' ||
TO_CHAR(sqlcode));
plg_debug( ' ' || Sqlerrm);
END;
PROCEDURE when_compare_replace (ldapplugincontext IN ODS.plugincontext,
result OUT INTEGER,
dn IN VARCHAR2,
attrname IN VARCHAR2,
attrval IN VARCHAR2,
rc OUT INTEGER,
errormsg OUT VARCHAR2
IS
retval pls_integer;
lresult BOOLEAN;
my_session DBMS_LDAP.session;
my_session1 DBMS_LDAP.session;
tmp_session DBMS_LDAP.session;
adupname VARCHAR2(1024) DEFAULT NULL;
BEGIN
plg_debug( '=== Begin when_compare_replace()');
result := DBMS_LDAP.COMPARE_FALSE;
DBMS_LDAP.USE_EXCEPTION := FALSE;
adupname := LDAP_PLUGIN.get_adupname(ldapplugincontext);
IF (adupname IS NULL) THEN
result := DBMS_LDAP.COMPARE_FALSE;
plg_debug('Can not get ADuserPrincipalName');
rc := DBMS_LDAP.SUCCESS;
errormsg := 'Exception in when_compare_replace: Can not get ADUserPrincipalName';
plg_debug( '=== End when_compare_replace() ===');
RETURN;
END IF;
-- externally authenticate user
IF ('&28' = 'n') THEN
IF (OIDADPSW2.AD_HANDLE IS NULL) THEN
my_session := DBMS_LDAP.init('&29', &30);
OIDADPSW2.AD_HANDLE := my_session;
ELSE
my_session := OIDADPSW2.AD_HANDLE;
END IF;
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session,1,8)));
retval := DBMS_LDAP.simple_bind_s(my_session, adupname, attrval);
plg_debug( 'simple_bind_res: ' || TO_CHAR(retval));
-- Retry logic should be invoked only
-- when retval = LDAP_UNWILLING_TO_PERFORM || LDAP_UNAVAILABLE
IF (retval = 52 OR retval = 53 OR retval = 81) THEN
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'retry unbind_res returns ' || TO_CHAR(retval));
my_session1 := DBMS_LDAP.init('&31', &32);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session1,1,8)));
tmp_session := my_session1;
retval := DBMS_LDAP.simple_bind_s(my_session1, adupname, attrval);
plg_debug( 'simple_bind_res again: ' || TO_CHAR(retval));
IF (retval != 52 AND retval != 53 AND retval != 81) THEN
OIDADPSW2.AD_HANDLE := tmp_session;
ELSE
retval := DBMS_LDAP.unbind_s(tmp_session);
plg_debug( 'unbind_res result ' || TO_CHAR(retval));
END IF;
END IF;
ELSE
IF (OIDADPSW2.AD_HANDLE IS NULL) THEN
my_session := DBMS_LDAP.init('&33', &34);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session,1,8)));
retval := DBMS_LDAP.open_ssl(my_session,
'file:' || '&35', '&36', 2);
IF (retval != 0) THEN
plg_debug( 'open_ssl failed error: ' || TO_CHAR(retval));
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
result := 82;
RETURN;
END IF;
plg_debug( 'open_ssl: ' || TO_CHAR(retval));
OIDADPSW2.AD_HANDLE := my_session;
ELSE
my_session := OIDADPSW2.AD_HANDLE;
END IF;
retval := DBMS_LDAP.simple_bind_s(my_session, adupname, attrval);
plg_debug( 'simple_bind_res: ' || TO_CHAR(retval));
-- Retry logic should be invoked only
-- when retval = LDAP_UNWILLING_TO_PERFORM || LDAP_UNAVAILABLE
IF (retval = 52 OR retval = 53 OR retval = 81) THEN
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'retry unbind_res returns ' || TO_CHAR(retval));
my_session1 := DBMS_LDAP.init('&37', &38);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session1,1,8)));
tmp_session := my_session1;
retval := DBMS_LDAP.open_ssl(my_session1,
'file:' || '&39', '&40', 2);
IF (retval != 0) THEN
plg_debug( 'open_ssl failed error: ' || TO_CHAR(retval));
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
result := 82;
RETURN;
END IF;
plg_debug( 'open_ssl: ' || TO_CHAR(retval));
retval := DBMS_LDAP.simple_bind_s(my_session1, adupname, attrval);
plg_debug( 'simple_bind_res: again ' || TO_CHAR(retval));
IF (retval != 52 AND retval != 53 AND retval != 81) THEN
OIDADPSW2.AD_HANDLE := tmp_session;
ELSE
retval := DBMS_LDAP.unbind_s(tmp_session);
plg_debug( 'unbind_res result ' || TO_CHAR(retval));
END IF;
END IF;
END IF;
-- for failover to connect to the secondary AD
IF ('&41' = 'y' AND retval != 0) THEN
IF ('&42' = 'n') THEN
IF (OIDADPSW2.AD_HANDLE IS NULL) THEN
my_session := DBMS_LDAP.init('&43', &44);
OIDADPSW2.AD_HANDLE := my_session;
ELSE
my_session := OIDADPSW2.AD_HANDLE;
END IF;
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session,1,8)));
retval := DBMS_LDAP.simple_bind_s(my_session, adupname, attrval);
plg_debug( 'simple_bind_res: ' || TO_CHAR(retval));
-- Retry logic should be invoked only
-- when retval = LDAP_UNWILLING_TO_PERFORM || LDAP_UNAVAILABLE
IF (retval = 52 OR retval = 53 OR retval = 81) THEN
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'retry unbind_res returns ' || TO_CHAR(retval));
my_session1 := DBMS_LDAP.init('&45', &46);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session1,1,8)));
tmp_session := my_session1;
retval := DBMS_LDAP.simple_bind_s(my_session1, adupname, attrval);
plg_debug( 'simple_bind_res again: ' || TO_CHAR(retval));
IF (retval != 52 AND retval != 53 AND retval != 81) THEN
OIDADPSW2.AD_HANDLE := tmp_session;
ELSE
retval := DBMS_LDAP.unbind_s(tmp_session);
plg_debug( 'unbind_res result ' || TO_CHAR(retval));
END IF;
END IF;
ELSE
IF (OIDADPSW2.AD_HANDLE IS NULL) THEN
my_session := DBMS_LDAP.init('&47', &48);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session,1,8)));
retval := DBMS_LDAP.open_ssl(my_session,
'file:' || '&49', '&50', 2);
IF (retval != 0) THEN
plg_debug( 'open_ssl failed error: ' || TO_CHAR(retval));
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
result := 82;
RETURN;
END IF;
plg_debug( 'open_ssl: ' || TO_CHAR(retval));
OIDADPSW2.AD_HANDLE := my_session;
ELSE
my_session := OIDADPSW2.AD_HANDLE;
END IF;
retval := DBMS_LDAP.simple_bind_s(my_session, adupname, attrval);
plg_debug( 'simple_bind_res: ' || TO_CHAR(retval));
-- Retry logic should be invoked only
-- when retval = LDAP_UNWILLING_TO_PERFORM || LDAP_UNAVAILABLE
IF (retval = 52 OR retval = 53 OR retval = 81) THEN
retval := DBMS_LDAP.unbind_s(my_session);
plg_debug( 'retry unbind_res returns ' || TO_CHAR(retval));
my_session1 := DBMS_LDAP.init('&51', &52);
plg_debug( 'ldap_session: ' || RAWTOHEX(SUBSTR(my_session1,1,8)));
tmp_session := my_session1;
retval := DBMS_LDAP.open_ssl(my_session1,
'file:' || '&53', '&54', 2);
IF (retval != 0) THEN
plg_debug( 'open_ssl failed error: ' || TO_CHAR(retval));
retval := DBMS_LDAP.unbind_s(my_session1);
plg_debug( 'unbind_res returns ' || TO_CHAR(retval));
result := 82;
RETURN;
END IF;
plg_debug( 'open_ssl: ' || TO_CHAR(retval));
retval := DBMS_LDAP.simple_bind_s(my_session1, adupname, attrval);
plg_debug( 'simple_bind_res: again ' || TO_CHAR(retval));
IF (retval != 52 AND retval != 53 AND retval != 81) THEN
OIDADPSW2.AD_HANDLE := tmp_session;
ELSE
retval := DBMS_LDAP.unbind_s(tmp_session);
plg_debug( 'unbind_res result ' || TO_CHAR(retval));
END IF;
END IF;
END IF;
END IF;
IF (retval = 0) THEN
result := DBMS_LDAP.COMPARE_TRUE;
plg_debug('AD auth return TRUE');
ELSE
result := DBMS_LDAP.COMPARE_FALSE;
plg_debug('AD auth return FALSE or ERROR');
END IF;
-- retval := DBMS_LDAP.unbind_s(my_session);
-- plg_debug( 'unbind_res Returns ' || TO_CHAR(retval));
rc := DBMS_LDAP.SUCCESS;
errormsg := 'No error msg.';
plg_debug( '=== End when_compare_replace() ===');
EXCEPTION
WHEN OTHERS THEN
rc := DBMS_LDAP.OPERATIONS_ERROR;
errormsg := 'Exception: when_compare_replace plugin';
plg_debug( 'Exception in when_compare_replace(). Error code is ' ||
TO_CHAR(sqlcode));
plg_debug( ' ' || Sqlerrm);
retval := DBMS_LDAP.unbind_s(OIDADPSW2.AD_HANDLE);
OIDADPSW2.AD_HANDLE := NULL;
END;
END OIDADPSW2;
SHOW ERRORS
EXIT;
-- usessl, adhost, adport, adhost, adsslport, walletloc, walletpwd
-- isfailover, isfailoverssl, sechost, secport, sechost, secsslport
-- secwalletloc, secwalletpwd
-- usessl, adhost, adport, adhost, adsslport, walletloc, walletpwd
-- isfailover, isfailoverssl, sechost, secport, sechost, secsslport
-- secwalletloc, secwalletpwd
FOR oidspadi.sh
#!/bin/sh
# $Header: oidspadi.sh 13-may-2005.13:48:51 saroy Exp $
# oidspadi.sh
# Copyright (c) 2002, 2005, Oracle. All rights reserved.
# NAME
# oidspadi.sh - AD external authentication plug-in install
# DESCRIPTION
# <short description of component this file declares/defines>
# NOTES
# <other useful comments, qualifications, etc.>
# MODIFIED (MM/DD/YY)
# saroy 05/13/05 - Fix for bug 4233817
# saroy 02/18/05 - Fix for bug 4054414
# saroy 11/02/04 - Fix for bug 3980370
# qdinh 01/19/04 - bug 3374115
# dlin 07/10/03 - turn off debug
# dlin 02/21/03 - plug-in install changes
# dlin 02/13/03 - dlin_bug-2625027
# dlin 07/22/02 - Creation
ADHOST="A"
ADPORT="1"
ADSSLPORT="1"
WALLETLOC="A"
WALLETPWD="A"
WALLETPWD2="A"
CONNECT="A"
ODSPWD="A"
ODSPWD2="A"
OIDHOST="A"
OIDPORT="1"
ORCLADMINPWD="A"
ORCLADMINPWD2="A"
PRGDN="A"
SCUSB="A"
EP="A"
ISSSL="n"
ISFAILOVER="n"
ISFAILOVERSSL="n"
SECADHOST="A"
SECADPORT="1"
SECADSSLPORT="1"
SECWALLETLOC="A"
SECWALLETPWD="A"
SECWALLETPWD2="A"
clear
echo "---------------------------------------------"
echo " OID Active Directory Plug-in Configuration"
echo "---------------------------------------------"
echo " "
echo "Please make sure Database and OID are up and running."
echo " "
LDAP_DIR=${ORACLE_HOME}/ldap
LDAP_LOG=${LDAP_DIR}/log
## ORACLE_HOME
if [ -z $ORACLE_HOME ] ; then
echo " ORACLE_HOME must be set for this installation script"
exit 0
fi
# gather required information
if [ ${ADHOST} = "A" ] ; then
printf "Please enter Active Directory host name: "
read ADHOST
fi
## active directory host name is required
if [ "${ADHOST}" = "" ]
then
echo "Active Directory host name is required";
exit 1;
fi
printf "Do you want to use SSL to connect to Active Directory? (y/n) "
read ISSSL
if [ "${ISSSL}" = "n" ]
then
if [ ${ADPORT} = "1" ] ; then
printf "Please enter Active Directory port number [389]: "
read ADPORT
if [ "${ADPORT}" = "" ]
then
ADPORT="389"
fi
fi
fi
if [ "${ISSSL}" = "y" ]
then
if [ ${ADSSLPORT} = "1" ] ; then
printf "Please enter Active Directory SSL port number [636]: "
read ADSSLPORT
if [ "${ADSSLPORT}" = "" ]
then
ADSSLPORT="636"
fi
fi
if [ ${WALLETLOC} = "A" ] ; then
echo " "
printf "Please enter Oracle wallet location: "
read WALLETLOC
fi
## wallet location is required
if [ "${WALLETLOC}" = "" ]
then
echo "Oracle wallet location is required";
exit 1;
fi
if [ ${WALLETPWD} = "A" ] ; then
printf "Please enter Oracle wallet password: "
stty -echo ; read WALLETPWD ; stty echo ; echo
fi
if [ "${WALLETPWD}" = "" ]
then
echo "Oracle wallet password is required";
exit 1;
fi
if [ ${WALLETPWD2} = "A" ] ; then
printf "Please enter confirmed Oracle wallet password: "
stty -echo ; read WALLETPWD2 ; stty echo ; echo
fi
if [ "${WALLETPWD}" != "${WALLETPWD2}" ]
then
echo "The input passwords are not matched";
exit 1;
fi
fi
if [ ${CONNECT} = "A" ] ; then
echo " "
printf "Please enter DB connect string: "
read CONNECT
fi
if [ ${ODSPWD} = "A" ] ; then
printf "Please enter ODS password: "
stty -echo ; read ODSPWD ; stty echo ; echo
fi
## password is required
if [ "${ODSPWD}" = "" ]
then
echo "ODS password is required";
exit 1;
fi
if [ ${ODSPWD2} = "A" ] ; then
printf "Please enter confirmed ODS password: "
stty -echo ; read ODSPWD2 ; stty echo ; echo
fi
if [ "${ODSPWD}" != "${ODSPWD2}" ]
then
echo "The input passwords are not matched";
exit 1;
fi
if [ "${CONNECT}" = "" ]
then
CMDNAME="$ORACLE_HOME/bin/sqlplus -s ods/${ODSPWD} "
else
CMDNAME="$ORACLE_HOME/bin/sqlplus -s ods/${ODSPWD}@${CONNECT} "
fi
# Check if ODS password and connect string is correct
${ORACLE_HOME}/bin/sqlplus -L ods/${ODSPWD}@${CONNECT} << END 1>/dev/null 2>/dev/null
exit;
END
if [ $? -ne 0 ]; then
echo "Incorrect connect string or ODS password specified"
exit 1;
fi
if [ ${OIDHOST} = "A" ] ; then
echo " "
printf "Please enter OID host name: "
read OIDHOST
fi
## oid host is required
if [ "${OIDHOST}" = "" ]
then
echo "OID host name is required";
exit 1;
fi
if [ ${OIDPORT} = "1" ] ; then
printf "Please enter OID port number [389]: "
read OIDPORT
if [ "${OIDPORT}" = "" ]
then
OIDPORT="389"
fi
fi
# Check if OID host and port is correct
${ORACLE_HOME}/bin/ldapbind -h ${OIDHOST} -p ${OIDPORT} 1>/dev/null 2>/dev/null
if [ $? -ne 0 ]; then
echo "Incorrect OID host or port specified"
exit 1;
fi
if [ ${ORCLADMINPWD} = "A" ] ; then
printf "Please enter orcladmin password: "
stty -echo ; read ORCLADMINPWD ; stty echo ; echo
fi
if [ "${ORCLADMINPWD}" = "" ]
then
echo "orcladmin password is required";
exit 1;
fi
if [ ${ORCLADMINPWD2} = "A" ] ; then
printf "Please enter confirmed orcladmin password: "
stty -echo ; read ORCLADMINPWD2 ; stty echo ; echo
fi
if [ "${ORCLADMINPWD}" != "${ORCLADMINPWD2}" ]
then
echo "The input passwords are not matched";
exit 1;
fi
# Check if orcladmin password is correct
${ORACLE_HOME}/bin/ldapbind -h ${OIDHOST} -p ${OIDPORT} -D 'cn=orcladmin' -w ${ORCLADMINPWD} 1>/dev/null 2>/dev/null
if [ $? -ne 0 ]; then
echo "Incorrect orcladmin password specified"
exit 1;
fi
echo " "
if [ ${SCUSB} = "A" ] ; then
printf "Please enter the subscriber common user search base [orclcommonusersearchbase]: "
read SCUSB
if [ "${SCUSB}" = "" ]
then
SCUSB=`${ORACLE_HOME}/bin/ldapsearch -h ${OIDHOST} -p ${OIDPORT} -D 'cn=orcladmin' -w ${ORCLADMINPWD} -s base -b 'cn=common,cn=products,cn=oraclecontext' -L 'objectclass=*' orclcommonusersearchbase | head -2 | grep -v 'dn:' | awk '{printf $2}'`
fi
fi
if [ ${PRGDN} = "A" ] ; then
printf "Please enter the Plug-in Request Group DN: "
read PRGDN
fi
if [ ${EP} = "A" ] ; then
printf "Please enter the exception entry property [(!(objectclass=orcladuser))]: "
read EP
if [ "${EP}" = "" ]
then
EP='(!(objectclass=orcladuser))'
fi
fi
echo " "
printf "Do you want to setup the backup Active Directory for failover? (y/n) "
read ISFAILOVER
if [ "${ISFAILOVER}" = "y" ]
then
if [ ${SECADHOST} = "A" ] ; then
printf "Please enter the backup Active Directory host name: "
read SECADHOST
if [ "${SECADHOST}" = "" ]
then
echo "Backup Active Directory host name is required";
exit 1;
fi
fi
printf "Do you want to use SSL to connect to the backup Active Directory? (y/n) "
read ISFAILOVERSSL
if [ "${ISFAILOVERSSL}" = "n" ]
then
if [ ${SECADPORT} = "1" ] ; then
printf "Please enter the backup Active Directory port number [389]: "
read SECADPORT
if [ "${SECADPORT}" = "" ]
then
SECADPORT="389"
fi
fi
fi
if [ "${ISFAILOVERSSL}" = "y" ]
then
if [ ${SECADSSLPORT} = "1" ] ; then
printf "Please enter the backup Active Directory SSL port number [636]: "
read SECADSSLPORT
if [ "${SECADSSLPORT}" = "" ]
then
SECADSSLPORT="636"
fi
fi
if [ ${SECWALLETLOC} = "A" ] ; then
echo " "
printf "Please enter Oracle wallet location: "
read SECWALLETLOC
fi
## wallet location is required
if [ "${SECWALLETLOC}" = "" ]
then
echo "Oracle wallet location is required";
exit 1;
fi
if [ ${SECWALLETPWD} = "A" ] ; then
printf "Please enter Oracle wallet password: "
stty -echo ; read SECWALLETPWD ; stty echo ; echo
fi
if [ "${SECWALLETPWD}" = "" ]
then
echo "Oracle wallet password is required";
exit 1;
fi
if [ ${SECWALLETPWD2} = "A" ] ; then
printf "Please enter confirmed Oracle wallet password: "
stty -echo ; read SECWALLETPWD2 ; stty echo ; echo
fi
if [ "${SECWALLETPWD}" != "${SECWALLETPWD2}" ]
then
echo "The input passwords are not matched";
exit 1;
fi
fi
fi
# install the plug-in PL/SQL packages
echo " "
echo "Installing Plug-in Packages ..."
echo " "
# install plug-in debug tool
cp $ORACLE_HOME/ldap/admin/oidspdsu.pls $LDAP_LOG
chmod +w $LDAP_LOG/oidspdsu.pls
echo "EXIT;" >> $LDAP_LOG/oidspdsu.pls
${CMDNAME} @$LDAP_LOG/oidspdsu.pls
rm $LDAP_LOG/oidspdsu.pls
${CMDNAME} @$ORACLE_HOME/ldap/admin/oidspdof.pls
# install plug-in packages
${CMDNAME} @$ORACLE_HOME/ldap/admin/oidspad2.pls ${ISSSL} ${ADHOST} ${ADPORT} ${ADHOST} ${ADPORT} ${ADHOST} ${ADSSLPORT} ${WALLETLOC} ${WALLETPWD} ${ADHOST} ${ADSSLPORT} ${WALLETLOC} ${WALLETPWD} ${ISFAILOVER} ${ISFAILOVERSSL} ${SECADHOST} ${SECADPORT} ${SECADHOST} ${SECADPORT} ${SECADHOST} ${SECADSSLPORT} ${SECWALLETLOC} ${SECWALLETPWD} ${SECADHOST} ${SECADSSLPORT} ${SECWALLETLOC} ${SECWALLETPWD} ${ISSSL} ${ADHOST} ${ADPORT} ${ADHOST} ${ADPORT} ${ADHOST} ${ADSSLPORT} ${WALLETLOC} ${WALLETPWD} ${ADHOST} ${ADSSLPORT} ${WALLETLOC} ${WALLETPWD} ${ISFAILOVER} ${ISFAILOVERSSL} ${SECADHOST} ${SECADPORT} ${SECADHOST} ${SECADPORT} ${SECADHOST} ${SECADSSLPORT} ${SECWALLETLOC} ${SECWALLETPWD} ${SECADHOST} ${SECADSSLPORT} ${SECWALLETLOC} ${SECWALLETPWD} 2>&1 ; stty echo ; echo
#stty -echo; eval ${CMDNAME} @$ORACLE_HOME/ldap/admin/oidspad2.pls ${ISSSL} ${ADHOST} ${ADPORT} ${ADHOST} ${ADPORT} ${ADHOST} ${ADSSLPORT} ${WALLETLOC} ${WALLETPWD} ${ADHOST} ${ADSSLPORT} ${WALLETLOC} ${WALLETPWD} ${ISFAILOVER} ${ISFAILOVERSSL} ${SECADHOST} ${SECADPORT} ${SECADHOST} ${SECADPORT} ${SECADHOST} ${SECADSSLPORT} ${SECWALLETLOC} ${SECWALLETPWD} ${SECADHOST} ${SECADSSLPORT} ${SECWALLETLOC} ${SECWALLETPWD} ${ISSSL} ${ADHOST} ${ADPORT} ${ADHOST} ${ADPORT} ${ADHOST} ${ADSSLPORT} ${WALLETLOC} ${WALLETPWD} ${ADHOST} ${ADSSLPORT} ${WALLETLOC} ${WALLETPWD} ${ISFAILOVER} ${ISFAILOVERSSL} ${SECADHOST} ${SECADPORT} ${SECADHOST} ${SECADPORT} ${SECADHOST} ${SECADSSLPORT} ${SECWALLETLOC} ${SECWALLETPWD} ${SECADHOST} ${SECADSSLPORT} ${SECWALLETLOC} ${SECWALLETPWD} 2>&1 ; stty echo ; echo
# usessl, adhost, adport, adhost, adsslport, walletloc, walletpwd
# isfailover, isfailoverssl, sechost, secport, sechost, secsslport
# secwalletloc, secwalletpwd
# usessl, adhost, adport, adhost, adsslport, walletloc, walletpwd
# isfailover, isfailoverssl, sechost, secport, sechost, secsslport
# secwalletloc, secwalletpwd
# register the plug-ins
echo " "
echo "Registering Plug-ins ..."
echo " "
$ORACLE_HOME/bin/ldapadd -h ${OIDHOST} -p ${OIDPORT} -D cn=orcladmin -w ${ORCLADMINPWD} << EOF
dn: cn=adwhencompare2,cn=plugin,cn=subconfigsubentry
objectclass:orclPluginConfig
objectclass:top
orclpluginname:OIDADPSW2
orclplugintype:operational
orclplugintiming:when
orclpluginldapoperation:ldapcompare
orclpluginenable:1
orclpluginversion:1.0.1
orclPluginIsReplace:1
cn:adwhencompare2
orclpluginsubscriberdnlist:${SCUSB}
orclpluginattributelist:userpassword
orclpluginrequestgroup:${PRGDN}
orclpluginentryproperties:${EP}
dn: cn=adwhenbind2,cn=plugin,cn=subconfigsubentry
objectclass:orclPluginConfig
objectclass:top
orclpluginname:OIDADPSW2
orclplugintype:operational
orclplugintiming:when
orclpluginldapoperation:ldapbind
orclpluginenable:1
orclpluginversion:1.0.1
orclPluginIsReplace:1
cn:adwhenbind2
orclpluginsubscriberdnlist:${SCUSB}
orclpluginrequestgroup:${PRGDN}
orclpluginentryproperties:${EP}
EOF
cat <<DONE
Done.
DONEHi,
This is a problem that is not made clear in the note. What is probably happening here is that both plugins are being fired when a user logs in. OID will only read the value returned from the final plugin to fire. This can be a problem if the user authenticates correctly against the first plug-in but fails on the second. This is entirely legitimate as this note tells you to configure this way but the OID only observes the final result. The note doesn't tell us this.
Here's an example:
We've two OID User users in different containers: cn=Al is in container cn=usersA,dc=oracle,dc=com and cn=BOB is in container cn=usersB,dc=oracle,dc=com.
We have two plugins: pluginA and PluginB. Installed in that order.
When Al logs in the two plugins fire. pluginA finds Al and returns a true, but then pluginB fires and returns a false undoing the good result. OID only accepts the final answer and so rejects the user. When Bob logins in both plugins fire again but it's the second plugin that returns the answer again. This is true and bob gets in.
There's a couple of ways around this and one of the more effective ways is to associate the plugin with the dn. So in our example, we associate the pluginA to fire only for the dn cn=usersA,dc=oracle,dc=com and pluginB only to fire when a user is in cn=usersB,dc=oracle,dc=com. This gets around the problem of mulitple plugins firing and giving conflicting answers as the appropriate plugin only fires once.
I've used this solution in a realtime environment when connecting and provisioning multiple ADs into one OID and found it to be extremely effective.
Another solution is to associate the plugins with groups.
Both of these options may be configured easily by modifying the plugin properties in ODM. Don't forget to restart OID after you've made the changes.
HTH!
Phil.
If -
As I have got response from Adobe forum that AcroPDF.dll was revamped with Acrobat 9 to work in a different method (multiple instances vs. a single global one).
Can anybody explain when user opens a PDF file within IE (Internet explorer) how AcroPDF.dll behaves?
Thanks,
Twinkle
I am interested to understand how plug-ins get loaded in context of Internet explorer. I mean if you open two seperate instances of IE and open PDF files within these two IE instance the single AcrobatPDF.dll handling the plug-in references or different?
This is because I am facing one behavior, we have developed one toolbar using Acrobat SDK where we are using PIHandshake and IAC to call acrobat API's to perform the action. Our custom ActiveX control load within IE to load PDF and because acrobat.exe loaded the Plugin also loaded automatically (because it resides under C:\Program Files\Adobe\Acrobat\plug-ins\..) and user can work with that plug-in. But the strange behavior is if user open another PDF in other instance of IE at the same time (while keep running our web application) and come back to our web applicatio and load another PDF document the plug-in is not loading again, i.e never , unless and untill user logoff and login which in turn load Acrobat.exe again. -
I was exhorted to upgrade to Firefox 4. Believing that like most such upgrades, it would be compatible and inconsequential, I did so. Having completed installation, it told me that a couple of plug-ins were incompatible (Yahoo and another which I didn't note) and that it would search for compatible plug-ins. When it finally told me that none were available, it didn't then say which were not installed, so I had no way of going back to find out. I followe instructions on a previous question to uninstall FF4 and reinstall FF3.6.17. How can I now discover which plug-ins were lost and thus restore them?
You can set the prefs dom.ipc.plugins.enabled.* to false on the about:config page to disable the plugin-container process.
dom.ipc.plugins.enabled.npctrl.dll (Silverlight)
dom.ipc.plugins.enabled.npqtplugin.dll (QuickTime)
dom.ipc.plugins.enabled.npswf32.dll (Flash) -
Re-install plug-ins after upgrade to CC
The chief thing holding me back from upgrading to CC is the prospect of installing all of my plug-ins, actions, brushes, etc. again.
When I upgraded from CS5 to CS6, this took days, and proved a major pain. I'd like to upgrade to CC, but not if I have to spend days re-installing plug-ins, fonts, brushes, actions, etc.
Is there a way I can upgrade from CS6 to CC without overwriting all of my stuff? In a dream world, I would download and install CC, and at first start-up, there would be all of my stuff exactly as I had it in CS6. If I can't get this or something like it, it's probably not worth it to upgrade yet.
Thanks for your time and help!
KBKB the process has not changed. If you use Third-party plug-ins and brushes the process will be the same as you have experienced previously. I would recommend contacting the Third-party plug-in manufacturers to verify they are compatible with the CC versions of the Adobe Creative applications.
Maybe you are looking for
-
My lumia 620 is not responding some time at the ti...
I have submitted my phon at nokia care for this issue that some time my lumia 620 is not responding at the time of call reciveing.They gave me after software upgradation.But is not solved then I contacted with customer care.They tolled me to submit t
-
Layout mode in Dreamweaver CS3. Can't draw table
I did the same exact thing i do in dreamweaver 8, but in cs3, it's now working. I went to layout mode and with a blank page and the draw table button is grayed out. what do i do to use it. I'm already in layout mode.
-
Hi Can any one tell me how to cancel the Tansfer oder brief:- I had created sales order, delivery(picked and packed and PGI ) and done invoice also. Now the user wants to cancell the every thing as he has delivered some wrong parts waiting for ur val
-
BlindTransfer option in CAD places call on hold
Hello, I am using UCCX 8.02 SU4. Our call center is now using a third party survey company and I need to transfer the call for all those callers that have selected to take the survey. Here is what I have done: 1. Created a "surveyApproved" boolean
-
Any other methods to downgrade my iphone 5c ios 7.1.1
I want to downgrade my ios 7.1.1 iphone 5c to ios 7.0.6,but the "error 3194" appear on the itunes. I've checked my itunes version,its the latest! I also tried the tinyumbrella even the ifaith too! Is there any other methods to downgrade my iphone?