User passwd

Hello,
I am using solaris 10 and when i create new user I have to pass password that must start with number e.g 12solaris , it is not accepting solaris12 as password as displaying password must be alphanumeric.how can I cure this problem
Message was edited by:
thbaig

man passwd:
o Each password must have PASSLENGTH characters, where
PASSLENGTH is defined in /etc/default/passwd and is set
to 6. Setting PASSLENGTH to more than eight characters
requires configuring policy.conf(4) with an algorithm
that supports greater than eight characters.
o Each password must meet the configured complexity con-
straints specified in /etc/default/passwd.
o Each password must not be a member of the configured
dictionary as specified in /etc/default/passwd.
o For accounts in name services which support password
history checking, if prior password history is defined,
new passwords must not be contained in the prior pass-
word history.
If you're using defaults, then 6 is the maximum number of characters. Also:
MINNONALPHA Minimum number of non-alpha (including
numeric and special) required. If MIN-
NONALPHA is not set, the default is 1.
You cannot specify MINNONALPHA if MINDI-
GIT or MINSPECIAL is also specified.
count it out.
alan

Similar Messages

  • How to pass hidden user/passwd to report?

    Hi,
    Running reports in the Web is there a way to pass hidden user/passwd to report without using the map file?

    No, you either have to have the details in the map file or the URL itself. There's no other way to hide the username/password.
    Hope this helps.
    Regards,
    Jatinder
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by ehlamentavel:
    Hi,
    Running reports in the Web is there a way to pass hidden user/passwd to report without using the map file?<HR></BLOCKQUOTE>
    null

  • Fnd_web_sec.change_password('user','passwd')

    Hi
    can anyone plz check it
    select APPS.fnd_web_sec.change_password('user','passwd') "RES" from dual
    ERROR at line 1:
    ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
    ORA-06512: at "APPS.FND_WEB_SEC", line 1448
    ORA-06512: at line
    Regards

    Hi;
    ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
    Cause: DDL operations like creation tables, views etc. and transaction control statements such as commit/rollback cannot be performed inside a query or a DML statement.
    Action: Ensure that the offending operation is not performed or use autonomous transactions to perform the operation within the query/DML operation.
    Regard
    Helios

  • User passwd -r ldap fails

    Solaris 9 client and Solaris 10 x86 clients works fine.
    But Solaris 10 (3/05) sparc version fails.
    #passwd -r ldap
    passwd: Changing password for testuser
    passwd: User unknown: testuser
    Permission denied
    I use same pam.conf and nsswitch.conf on all.
    All clients are initialized with the same ldap_profile and
    this works fine.
    I use pam.conf from
    http://docs.sun.com/app/docs/doc/816-4556/6maort2te?a=view
    The client does not seem to contact the server.
    If i monitored traffic, i cannot see packets.
    passwd in debug modus the following result
    pam.conf:
    passwd auth binding pam_passwd_auth.so.1 debug server_policy
    passwd auth required pam_ldap.so.1 debug
    passwd fails:
    Jul 7 08:51:06 sol10sparc passwd[1339]: [ID 285619 auth.debug] ldap pam_sm_authenticate(passwd testuser), flags = 0
    Jul 7 08:51:06 sol10sparc passwd[1339]: [ID 647000 auth.debug] ldap pam_sm_authenticate(passwd testuser), AUTHTOK not set
    passwd works fine:
    Jul 7 08:59:00 sol10x86 passwd[1191]: [ID 285619 auth.debug] ldap pam_sm_authenticate(passwd testuser), flags = 0
    One sparc client is full patched and one has no patches, but the problem is steady.
    Is this a well-known error?
    gratefully for each assistance.

    Just curious to know, if you were to comment out all "pam_unix_cred.so.1" lines in /etc/pam.conf, will it help?
    I knew this shared object file is only found in Solaris10, it is not found in Solaris8/9. You may "man pam_ldap" in Solaris10 to find out what this file is for.
    We are merely trying to use a working copy of pam.conf from Solaris8/9 in Solaris10.
    Gary

  • User passwd and profiles during migration

    Hi
    I am migrating my system to another hardware. For users to access the new server, should I simply add /etc/passwd and /etc/shadow in the new system as well as creating their home directory?
    thx

    Hi Charles,
    >>I am very nervous about doing the uninstall and finding my user's client profile is inaccessible and all the settings will need to be redone.
    As far as I know, as long as we follow the right guidance to do the migration, this won’t happen.
    The following Microsoft official article provides step-to-step guidance for migrating from previous versions to Windows Server 2012 R2 Essentials.
    Migrate from Previous Versions to Windows Server 2012 R2 Essentials or Windows Server Essentials Experience
    http://technet.microsoft.com/en-us/library/dn408633.aspx
    Best regards,
    Frank Shen

  • Svrmgrl connect internal fails after changing oracle os user passwd on 8.06

    Hello,
    I've this problem.
    I've installed oracle rdbms 8.0.6 on HP-UX 10.20.
    I've choosen o.s. authentication system with password file.
    In the password file I set the password of the os user oracle which owns installation.
    In first time svrmgrl connect internal looks good.
    But when I've changed oracle os user password, and i retry to do connect internal
    I receive the following message:
    SVRMGR> connect internal;
    Password:
    Password:
    ORA-01031: insufficient privileges
    I've tried to reset the password to the old one, but it's unuseful
    Could someone help me?

    In the password file I set the password of the os
    user oracle which owns installation.The Password for the password file is supposed to be the SYS password and not OS User oracle which owns installation.
    I do not think the Oracle OS user password change is the problem. When you alter SYS password using the alter user command, it should change the password file automatically.
    Try
    SVRMGR> connect sys/sys_password as see whether it works. If it does not, then check other issues.

  • Webdynpro - Check if a portal user has a user in R/3 Backend

    Hi Experts,
    i have following problem, and maybe some of you can help me out with an idea or (much better) a solution:
    Our Company is running an Enterprise Portal on NW2004s (SPS 18). Currently i am developing a Java WebDynpro Application for the portal called Transactionstarter. Withhin this application a portal user can simply add a backend System (R/3), a transaction and a Description. This information will be stored in a xml file in userhome in KM. When the user clicks the description, SAP WinGui will open with the transaction he defined before. We use SSO for opening the transaction if the user has a backend user. If not, the loginscreen of the backend will appear.
    All this works fine.
    Now we have the requirement for an automated system check.
    The portal user can run an initial system check. This system check should check all configured backend systems if the portal user has a user in R/3 backend.
    But how can i check if my portal user exists in backend?
    I cannot use JCO because we have a lot of Systems (more than 300 all together) and i don´t want to create a destination for every system. Or did i misunderstood something with JCO?
    Does anyone of you have a solution, how i can check every system, if the portal user has also a backend user?
    Thanks in advance.
    Regards
    Pascal

    Hi Pascal,
    with JCO you can use also the method JCO.createClient:
    public static JCO.Client createClient(java.lang.String client,
                                          java.lang.String user,
                                          java.lang.String passwd,
                                          java.lang.String lang,
                                          java.lang.String mshost,
                                          java.lang.String r3name,
                                          java.lang.String group)
    Creates an instance of a client connection to a remote SAP system (with load balancing)
    Parameters:
    client - SAP logon client
    user - SAP logon user
    passwd - SAP logon password
    lang - SAP logon language
    mshost - Host name of the message server
    r3name - Name of the SAP system
    group - Name of the group of application servers
    Returns:
    the newly created client
    for connections to other systems. So you can avoid to create destinations
    Regards
    Matteo
    Edited by: Matteo Fusi on Apr 1, 2009 11:33 AM

  • ORA-01435: user does not exist when using imp utility

    I installed Oracle 8.1.7.0.0 successfully on WINDOWS 2000 and created a database TEST using DBCA. Then I used a script to creat a tablespace and a user in TEST databse. I could use the imp utility to import the data (a dmp file) to the TEST database without any problem. But after I applied a patch to bring up the version to Oracle 8.1.7.4.1, I got the following error when I tried to use the imp utility again to import the data (a dmp file) to the TEST database.
    IMP-00003: ORACLE error 1435 encountered
    ORA-01435: user does not exist
    IMP-00000: Import terminated unsuccessfully
    I checked that I created the same user test (as it is in dmp file I wanted to import) on TEST, and I could login to TEST using:
    sqlplus test/test@TEST
    The command I used is:
    imp system/password@TEST file=test.dmp full=y log=importTEST.TEST.tmp
    I also tried to use the following command:
    imp system/password@TEST file=test.dmp fromuser=test touser=test log=importTEST.TEST.tmp
    and got the same error as before.
    Anyone has any clues what could go wrong? The only difference for me to import the data on TEST is that the
    previous successful import was done in Oracle 8.1.7.0.0.
    Is it possible that I missed something during the applying of the patch 8.1.7.4.1?
    Thanks, and your help is greatly appreciated.
    Jane

    Ther is a set of instruction to be followed after installing the patch set 8.1.7.4.1 after running it thru OUI.They are as follows. Please complete these steps and u should not have problems any more.
    When applying this patchset on Windows NT and Windows 2000, you must log onto the system as a user with Administrative privileges (e.g., as a user which is a member of the local Administrators group).
    1.Disabling system triggers.
    Before performing the next step, you must first set SYSTEMTRIG_ENABLED = FALSE in the initialization parameter file. To do this add the following line to your init<sid>.ora file and restart the database (see Note 149948.1 in Metalink for more information on this issue).
    systemtrig_enabled=false
    2.Invoke SQL*Plus (sqlplus), connect as internal and run the following:
    select * from duc$ where PACK='JIS$INTERCEPTOR$' ;
    If no rows were returned go to the next step. If a row was returned delete it using the following:
    delete from duc$ where PACK='JIS$INTERCEPTOR$' ;
    commit;
    3.Invoke SQL*Plus (sqlplus), connect as internal and run the following SQL scripts with event 10520 set. NOTE: This event is not intended for regular database operation and when turned on below by the 'ALTER SESSION' command will automatically be turned off by the subsequent 'CONNECT' command.
    ALTER SESSION SET EVENTS '10520 TRACE NAME CONTEXT FOREVER, LEVEL 10';
    ?/rdbms/admin/catalog.sql
    ?/rdbms/admin/catproc.sql
    ?/rdbms/admin/catrep.sql (This only needs to be run if you are using symmetric/advanced replication. This is not necessary for sites using dblinks and read-only snapshots if symmetric/advanced replication is not installed)
    CONNECT / AS SYSDBA;
    update obj$ set status=5 where type#=29 and owner#!=0;
    commit;
    4.You can ignore this step if you have already executed it as part of a previous 8.1.7 patch set install.
    If Java has previously been loaded into the database, invoke SQL*Plus (sqlplus), connect as internal and run the following SQL DDL command(* Note:If Java has not previously been loaded into the database, skip this step).:
    SQL> create or replace java system
    2 /
    (Note that the / (slash) is important to ensure the execution of the command).
    To ensure the correct installation of the XDK in the database run the following 2 scripts (Bug 2115227):
    $ORACLE_HOME/oracore/admin/initxml.sql
    $ORACLE_HOME/rdbms/admin/catxsu.sql
    * To determine whether Java has previously been loaded into the database:
    invoke SQL*Plus (sqlplus), connect as internal and run the following:
    SQL> select count(*) from all_objects where object_type like 'JAVA%';
    Java is installed if you get a non zero result returned from the query.
    5.You can ignore this step if you have already executed it as part of a previous 8.1.7 patch set install:
    If Java has previously been loaded into the database, invoke SQL*Plus (sqlplus), connect as internal and run the following scripts which are located in $ORACLE_HOME/javavm/install ( Note: If Java has not previously been loaded into the database, you can skip this step):
    load_jis.sql
    jisja.sql
    initjsp.sql
    jspja.sql
    Notes:
    When running the $ORACLE_HOME/javavm/install/jisja.sql script the following error may be reported and can be ignored:
    call jis_exit_java_session(0)
    ERROR at line 1:
    ORA-29515: exit called from Java code with status 0
    Bug 1459233 was filed against this problem which is fixed in 9i.
    6.If you deleted a row from duc$ in step 8 then reinsert it again. Invoke SQL*Plus (sqlplus), connect as internal and run the following SQL:
    insert into duc$ (OWNER, PACK, PROC, FIELD1, OPERATION#, SEQ) values ('SYS', 'JIS$INTERCEPTOR$', 'USER_DROPPED', 0, 1, 1);
    commit;
    7.Enabling system triggers.
    You must either remove SYSTEMTRIG_ENABLED from the initialization parameter file or explicitly set it to TRUE before attempting any other patch set post-install steps. Restart the database.
    8.This step is optional - it will recompile all invalid PL/SQL packages now rather than when accessed for the first time - you can also use utlrcmp.sql to parallelize this. Invoke SQL*Plus (sqlplus), connect as internal and run the following SQL script:
    ?/rdbms/admin/utlrp.sql
    9.Execute the following steps only if you have installed Oracle interMedia Text in the database you are attempting to modify:
    If you have not previously unlocked the ctxsys account and supplied a password for that account, you need to do so. (If you have needed to use Oracle Text in any way prior to applying the patchset, you will have already performed this step, and you can skip this.) Do so by issuing the following statement:
    ALTER USER ctxsys IDENTIFIED BY <passwd> ACCOUNT UNLOCK;
    If you have already installed 8.1.7.2 or 8.1.7.3, go directly to step 7 below.
    If you have already installed 8.1.7.1, go directly to step 5 below.
    CONNECT ctxsys/<passwd>;
    @?/ctx/admin/upgrade/u0801071.sql
    CONNECT ctxsys/<passwd>;
    @?/ctx/admin/upgrade/u0801072.sql
    CONNECT / AS SYSDBA;
    @?/ctx/admin/upgrade/s0801074.sql
    CONNECT ctxsys/<passwd>
    @?/ctx/admin/dr0pkh.sql
    @?/ctx/admin/dr0plb.sql
    @?/ctx/admin/dr0type.plb
    @?/ctx/admin/dr0typec.plb
    9.You can ignore this step if you have already executed it as part of a previous 8.1.7 patch set install:
    The installation of this patch set fixes a potential security hole in the XSQL Servlet - see here for more detail. The patchset installation does not, however, modify any of the Oracle HTTP Server configuration files to reflect changes to the XSQL Servlet installation. If you have previously installed the Oracle HTTP Server, you will need to update one of the configuration files manually after the patchset installation is complete. If you do not do so, the XSQL Servlet may not work in the context of the Oracle HTTP Server after the patchset is installed. To update your Oracle HTTP Server configuration, perform the following steps:
    1) Edit the file: $ORACLE_HOME/Apache/Jserv/conf/jserv.properties
    2) Search for the string: "XSQLConfig.xml File location"
    3) Modify the parameter wrapper.classpath on the line immediately following the above string to read: $ORACLE_HOME/oracore/admin
    4) Save the file.
    10.You can ignore this step if you have already executed it as part of a previous 8.1.7 patch set install:
    The installation of this patch set fixes a potential security hole in the PL/SQL XML parser - see here for more detail. To load the new XML parser in to the database, run the following script as user SYS:
    ? /xdk/plsql/parser/bin/load.sql
    11.If you are using the RMAN catalog then upgrade it as follows:
    rman catalog <user/passwd@alias>
    upgrade catalog;
    upgrade catalog;
    The post install actions are now complete and the database is now ready for use.

  • Allow unix account user to execute sqlplus in 10g

    we have created a user with default groups and we required allow him to execute sqlplus command but it is giving errors. ( on same system we have db and oracle account). we do not want him to login into sysdba but as normal user so that he could enter sqlplus user/passwd@dbname. what should be done when a new unix account is created and how allow him to execute sqlplus command?
    OS: openSUSE 11.1 - 32 bi
    DB : 10.2.0.1.0 - 32 bit
    do we need to install instant client ? to allow other than oracle user to access oracle db on same system?
    please help me out. thanks in advance.

    user612078 wrote:
    we have created a user with default groups and we required allow him to execute sqlplus command but it is giving errors. ( on same system we have db and oracle account). we do not want him to login into sysdba but as normal user so that he could enter sqlplus user/passwd@dbname. what should be done when a new unix account is created and how allow him to execute sqlplus command?
    OS: openSUSE 11.1 - 32 bi
    DB : 10.2.0.1.0 - 32 bit
    do we need to install instant client ? to allow other than oracle user to access oracle db on same system?
    please help me out. thanks in advance.If this is on the same box as the db, you definately don't need to install any other client, as the full client was installed with the db. The client you are using has nothing to do with what permissions a particular user may or may not have, either at the OS or DB level.
    You say it is giving errors, but you didn't think giving the acutal specific error message might be needed to help you diagnose the problem? My crystal ball is out for repair.

  • Audit the users processes _Audit not enabled in the database.

    Hello
    This is not usual question ;
    I'm using oracle database 10g 10.2.0.2. Auditing is not enabled. I need to check users who executed a certained procedure from december 01 2010, until Jan 10 2011. The users connects to the database say "user/passwd@dbname" and executes the procedure. There can be different users sharing the same database logins. Is it possible to get some logs with the client PC and the date the procedure was executed. Even without Audit enabled
    I will really appreciate
    Edited by: user1115482 on Feb 1, 2011 11:48 AM

    Hi!
    If the listener logs are availables for this period you can check the logins (host,username,service) from them.
    Best Regards
    Norbert

  • PASSWD PROBLEM!!!!!

    Hi all,
    We are facing a weird problem on sol 5.7.
    We changed the root passwd and now the new as well as old passwords are working(as in we can log in with both the old as well as new passwds!!).
    The only thing i remember doing is vi(ing) the /etc/passwd file to change the default shell for root to ksh.
    Any help would be greatly appreciated!!
    Thanx!
    Manpreet

    Hi,
    login in to root user modify the two files
    1. /etc/passwd
    2. /etc/shadow
    remove x (2nd column) entry from /etc/passwd file and remove junk characters from /etc/shadow file (2nd column) ( use any text editor like vi command)
    Afterwards using the passwd command to change the root user passwd.
    revert back.
    Thanks.
    regards,
    senthilkumar
    SUN - DTS

  • Can not get data from mySql

    I prepared a GUI user connection application in NebBeans 5.5 accessing mySql database in the company server. The application run very well in desktop.
    However, when I post it to the company server web, it gets nothing from the database.
    Can any one give advice???
    Thank you in advance.
    The following is my application
    import java.util.Vector;
    import java.awt.event.*;
    import java.awt.*;
    import java.awt.event.*;
    public class UserConnection extends javax.swing.JFrame {
    //constants for database
    private final String userName = "labmanage";
    private final String password = "labmanage";
    private final String server = "jdbc:mysql://svr.corp.com/labmanage";
    private final String driver = "com.mysql.jdbc.Driver";
    private JDBCAdapter data = new JDBCAdapter(server, driver, userName, password);
    //variables
    private String user, pwd;
    private Vector<Vector<String>> userTable = new Vector<Vector<String>>();
    private Vector<String>colUserNames = new Vector<String>();
    * Creates new form UserConnection
    public UserConnection() {
    initComponents();
    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {
    userLabel = new javax.swing.JLabel();
    pwdLabel = new javax.swing.JLabel();
    userTextField = new javax.swing.JTextField();
    passwordField = new javax.swing.JPasswordField();
    submitButton = new javax.swing.JButton();
    statusLabel = new javax.swing.JLabel();
    jScrollPane1 = new javax.swing.JScrollPane();
    statusTextArea = new javax.swing.JTextArea();
    changePwdButton = new javax.swing.JButton();
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("User's Connection");
    setBackground(new java.awt.Color(153, 204, 255));
    setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
    setFont(new java.awt.Font("aakar", 1, 12));
    userLabel.setText("User Name:");
    pwdLabel.setText("Password:");
    submitButton.setText("Submit");
    submitButton.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    submitButtonMouseClicked(evt);
    submitButton.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    submitButtonActionPerformed(evt);
    submitButton.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyTyped(java.awt.event.KeyEvent evt) {
    submitButtonKeyTyped(evt);
    statusLabel.setText("Status:");
    statusTextArea.setColumns(20);
    statusTextArea.setEditable(false);
    statusTextArea.setLineWrap(true);
    statusTextArea.setRows(3);
    statusTextArea.setText("Initial assigned password is \"dime\".");
    statusTextArea.setWrapStyleWord(true);
    jScrollPane1.setViewportView(statusTextArea);
    changePwdButton.setText("Change password");
    changePwdButton.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    changePwdButtonActionPerformed(evt);
    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(layout.createSequentialGroup()
    .addContainerGap()
    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(userLabel)
    .add(pwdLabel)
    .add(statusLabel))
    .add(35, 35, 35)
    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(layout.createSequentialGroup()
    .add(submitButton)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(changePwdButton))
    .add(passwordField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
    .add(userTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
    .add(org.jdesktop.layout.GroupLayout.TRAILING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE))
    .addContainerGap())
    layout.setVerticalGroup(
    layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(layout.createSequentialGroup()
    .addContainerGap()
    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(userLabel)
    .add(userTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(pwdLabel)
    .add(passwordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(statusLabel)
    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    .add(15, 15, 15)
    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(submitButton)
    .add(changePwdButton))
    .addContainerGap(27, Short.MAX_VALUE))
    pack();
    }// </editor-fold>
    private void submitButtonKeyTyped(java.awt.event.KeyEvent evt) {                                     
    if(evt.getKeyCode() == KeyEvent.VK_ENTER) {
    submitButton.doClick();
    submitButton.requestFocus();
    changePwdButton.requestFocus();
    private void changePwdButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
    String command = evt.getActionCommand();
    if(command.equals("Change password")) {
    passwordField.setText("");
    //Get connection to the changing password panel
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new ChangePassword().setVisible(true);
    private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here:
    String command = evt.getActionCommand();
    if(command.equals("Submit")) {
    user = getUser();
    pwd = getPwd();
    data = new JDBCAdapter(server, driver, userName, password);
    data.executeQuery("SELECT * FROM USERTABLE");
    colUserNames = data.getColumnNames();
    userTable = data.getDataTable();
    if(colUserNames.elementAt(0).equals("")) {
    statusTextArea.setText("Can not connect to database");
    boolean checkUser = false;
    int i = 0;
    while(!checkUser && i<userTable.size()) {
    if(user.equalsIgnoreCase((String) userTable.elementAt(i).elementAt(0))) {
    //Find the user in database
    checkUser = true;
    //Check user's password
    if(pwd.equals((String)userTable.elementAt(i).elementAt(1))) {
    //Check for initial default password. The user is requested
    //to change his password
    if(pwd.equals((String) "dime")) {
    statusTextArea.setText("You are requested to change your " +
    "initial assigned password. Click 'Change password' please.");
    else {
    //Set UserConnection Panel to invisible
    setVisible(false);
    dispose();
    //Get connection to the table
    if(userTable.elementAt(i).elementAt(2).equals("0")) {
    //Get connection to non-editable table
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    PVRackReportNonEdit rackReport = new PVRackReportNonEdit();
    rackReport.createAndShowDialog();
    else {
    if(userTable.elementAt(i).elementAt(2).equals("1")) {
    //Get connection to editable table
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    PVRackReport rackReport = new PVRackReport(user);
    rackReport.createAndShowDialog();
    //PVRackReport rackReport = new PVRackReport();
    else statusTextArea.setText("You do not get approval for viewing data. " +
    "Please contact the administrator for details.");
    else {
    passwordField.setText("");
    statusTextArea.setText("Please enter corrected password or" +
    "the administrator for details.");
    i++;
    if(!checkUser) {
    passwordField.setText("");
    statusTextArea.setText("Not find such user's name." +
    "contact the admistrator for details.");
    private void submitButtonMouseClicked(java.awt.event.MouseEvent evt) {                                         
    // TODO add your handling code here:
    * @param args the command line arguments
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new UserConnection().setVisible(true);
    public String getUser() {
    return userTextField.getText();
    public String getPwd() {
    return passwordField.getText();
    // Variables declaration - do not modify
    private javax.swing.JButton changePwdButton;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JPasswordField passwordField;
    private javax.swing.JLabel pwdLabel;
    private javax.swing.JLabel statusLabel;
    private javax.swing.JTextArea statusTextArea;
    private javax.swing.JButton submitButton;
    private javax.swing.JLabel userLabel;
    private javax.swing.JTextField userTextField;
    // End of variables declaration
    Here is my JDBCAdapter
    package rackdemo2;
    * This is an adaptor which transforms the JDBC interface
    * to the PVRackTableDialogue
    import java.util.Vector;
    import java.sql.*;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.event.TableModelEvent;
    public class JDBCAdapter {
    Connection connection;
    Statement statement;
    ResultSet resultSet;
    Vector<String> columnNames = new Vector<String>();
    Vector<Vector<String>> rows = new Vector<Vector<String>>();
    ResultSetMetaData metaData;
    public JDBCAdapter(String url, String driverName,
    String user, String passwd) {
    try {
    Class.forName(driverName);
    connection = DriverManager.getConnection(url, user, passwd);
    statement = connection.createStatement();
    catch (ClassNotFoundException ex) {
    System.err.println("Cannot find the database driver classes.");
    System.err.println(ex);
    catch (SQLException ex) {
    System.err.println("Cannot connect to this database.");
    System.err.println(ex);
    public void executeQuery(String query) {
    if (connection == null || statement == null) {
    System.err.println("There is no database to execute the query.");
    return;
    try {
    resultSet = statement.executeQuery(query);
    metaData = resultSet.getMetaData();
    int numberOfColumns = metaData.getColumnCount();
    // Get the column names and cache them.
    // Then we can close the connection.
    for(int column = 0; column < numberOfColumns; column++) {
    columnNames.addElement(metaData.getColumnLabel(column+1));
    // Get all rows.
    while (resultSet.next()) {
    Vector<String> newRow = new Vector<String>();
    for (int i = 1; i <= columnNames.size(); i++) {
    String tempString = resultSet.getString(i);
    if(!tempString.equals("null")) {
    newRow.addElement(tempString);
    else {
    newRow.addElement("");
    rows.addElement(newRow);
    //Modify dataTable to add empty row to separate chassis
    if(numberOfColumns>1) {
    int nRow = rows.size();
    Vector<String> row = new Vector<String>();
    for(int i=0; i<numberOfColumns; i++){
    row.add("");
    if(nRow>0 || numberOfColumns>0) {
    //Adding blank row to separate chassis
    int i = 0;
    while(i<nRow) {
    if(!rows.elementAt(i).elementAt(0).equals("")) {
    if(i>0) {
    rows.add(i, row);
    i++;
    nRow = rows.size();
    i++;
    close();
    catch (SQLException ex) {
    System.err.println(ex);
    public void close() throws SQLException {
    resultSet.close();
    statement.close();
    connection.close();
    // MetaData
    public Vector<String> getColumnNames() {
    return columnNames;
    public Vector<Vector<String>> getDataTable() {
    return rows;
    public int getColumnCount() {
    return columnNames.size();
    // Data methods
    public int getRowCount() {
    return rows.size();
    }

    Thank you for your answer.
    I'm very new to mySql as server. When I was assigned
    to write the application, the administrator has set
    up mySql database in the company web server for my
    application. My program runs very when using my
    workplace desktop with java web start or with java
    web start in netbeans (all paths should be link to my
    desktop hard disk, i.e. users/application/). I can
    not run the application at home because I can not
    access to the company intranet server (for security
    purpose). The problem happens when I post the
    application in the company web page (I have to modify
    all paths in jnlp file to the company web address).
    The program then runs without exception except it
    seems that it gets no data from the database (for
    example, when I type my username, it returns that
    "There is no such user name. contact.." as what I
    code in the application for not correcting user name)
    It happens for not only using my company desktop but
    also for others.
    Please help me.
    Thank you in advance.And all this could have been answered yesterday, in your other thread, when I asked you "Is the DB configured to allow that user to connect to the DB from where that user is attempting to connect from?"
    Seeing as how you get that error, the obvious answer was, "No." At which point we could have continued.
    Configure the needed users into the DB, without forgetting to allow them access from the machines from which they are going to access from.
    Although, I agree with Rene, that you should set up a server of some sort, located on the same machine as the DB, for communicating with the DB.

  • Can't startup connection pool

    Hi All,
    I have defined a connection pool to Sybase ASE 12.0. On WLS startup, the connection
    fails due to a login failure. Needless to say, the user and passwords are absolutely
    the right ones. IN included the def for the pool (config.xml) and the log output
    below. Any ideas?
    From config.xml:
    <JDBCConnectionPool
         DriverName="com.sybase.jdbc.SybDriver"
    Name="egate2-pool"
    Password="none"
    Properties="user=mfinn;password=mfi123"
    URL="jdbc:sybase:Tds:egate2.dev.east.frontiercorp.com:4100"
    CapacityIncrement="1"
         InitialCapacity="1"
         MaxCapacity="2"
         RefreshMinutes="0"
         ShrinkPeriodMinutes="15"
         ShrinkingEnabled="true"
         Targets="mjf375"
         TestConnectionsOnRelease="false"
         TestConnectionsOnReserve="false"
    />
    <JDBCDataSource
         JNDIName="egate2-jdbcds"
         Name="egate2"
    PoolName="egate2-pool"
    RowPrefetchEnabled="false"
    StreamChunkSize="256"
    />
    From weblogic.log:
    ####<Jul 10, 2001 12:24:16 PM EDT> <Error> <JDBC> <egatedev1> <mjf375> <main>
    <system> <> <001060> <Cannot startup connection pool "egate2-pool" weblogic.common.ResourceException:
    Could not create pool connection. The DBMS driver exception was:
    java.sql.SQLException: JZ00L: Login failed. Examine the SQLWarnings chained to
    this exception for the reason(s).
         at com.sybase.jdbc.ErrorMessage.raiseError(ErrorMessage.java)
         at com.sybase.tds.Tds.processLoginAckToken(Tds.java)
         at com.sybase.tds.Tds.doLogin(Tds.java)
         at com.sybase.tds.Tds.login(Tds.java)
         at com.sybase.jdbc.SybConnection.<init>(SybConnection.java)
         at com.sybase.jdbc.SybDriver.connect(SybDriver.java)
         at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(ConnectionEnvFactory.java:188)
         at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:130)
         at weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllocator.java:707)
         at weblogic.common.internal.ResourceAllocator.<init>(ResourceAllocator.ja
    TIA,
    Mike

    Hi Mike. Don't specify the password except
    as you have done in the properties. Let me
    know...
    Joe
    Mike wrote:
    >
    Just to add:
    1) I can login to the same URL (same login and password) from a standalone app
    using the com.sybase.jdbc.SybDriver in the weblogic.jar. This is with user/password
    being set in a properties object, as I assume is happening in WLS when the connection
    is attempted. IOW, I am using getConnection(url,props) as opposed to getConnection(url,user,passwd,props).
    2) The problem stated below also applies against a ASE 11.9.2 server.
    Mike
    "Mike" <[email protected]> wrote:
    Hi All,
    I have defined a connection pool to Sybase ASE 12.0. On WLS startup,
    the connection
    fails due to a login failure. Needless to say, the user and passwords
    are absolutely
    the right ones. IN included the def for the pool (config.xml) and the
    log output
    below. Any ideas?
    From config.xml:
    <JDBCConnectionPool
    DriverName="com.sybase.jdbc.SybDriver"
    Name="egate2-pool"
    Password="none"
    Properties="user=mfinn;password=mfi123"
    URL="jdbc:sybase:Tds:egate2.dev.east.frontiercorp.com:4100"
    CapacityIncrement="1"
    InitialCapacity="1"
    MaxCapacity="2"
    RefreshMinutes="0"
    ShrinkPeriodMinutes="15"
    ShrinkingEnabled="true"
    Targets="mjf375"
    TestConnectionsOnRelease="false"
    TestConnectionsOnReserve="false"
    />
    <JDBCDataSource
    JNDIName="egate2-jdbcds"
    Name="egate2"
    PoolName="egate2-pool"
    RowPrefetchEnabled="false"
    StreamChunkSize="256"
    />
    From weblogic.log:
    ####<Jul 10, 2001 12:24:16 PM EDT> <Error> <JDBC> <egatedev1> <mjf375>
    <main>
    <system> <> <001060> <Cannot startup connection pool "egate2-pool" weblogic.common.ResourceException:
    Could not create pool connection. The DBMS driver exception was:
    java.sql.SQLException: JZ00L: Login failed. Examine the SQLWarnings
    chained to
    this exception for the reason(s).
    at com.sybase.jdbc.ErrorMessage.raiseError(ErrorMessage.java)
    at com.sybase.tds.Tds.processLoginAckToken(Tds.java)
    at com.sybase.tds.Tds.doLogin(Tds.java)
    at com.sybase.tds.Tds.login(Tds.java)
    at com.sybase.jdbc.SybConnection.<init>(SybConnection.java)
    at com.sybase.jdbc.SybDriver.connect(SybDriver.java)
    at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(ConnectionEnvFactory.java:188)
    at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:130)
    at weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllocator.java:707)
    at weblogic.common.internal.ResourceAllocator.<init>(ResourceAllocator.ja
    TIA,
    Mike
    PS: Folks: BEA WebLogic is expanding rapidly, with both entry and advanced positions
    for people who want to work with Java, XML, SOAP and E-Commerce infrastructure products.
    We have jobs at Nashua NH, Liberty Corner NJ, San Francisco and San Jose CA.
    Send resumes to [email protected]

  • [SOLVED]Mounting usb drives "not authorized" with thunar-volman (XFCE)

    Hi,
    I'm new to Arch (even though I must be approximately at my 15th try at installing it properly) and I have a problem with thunar-volman.
    Whenever I log in as user, and try to mount a usb drive with thunar, let's say I want to plug a drive labeled Ext3_8Go, I get the same message in a pop-up window : "Failed to mount Ext3_8Go (or anything close, not in English in the text), not authorized (that part is in English)"
    My install is :
    - net install
    - partitions : 9Go for /, no swap, no separate /home
    - packages : base and base-devel. The only modifications in the package list is that I remove ppp, pcmciautils, and xfsprogs.
    - config : at the install stage I only modify rc.conf to change LOCALE and HOSTNAME, and pacman's mirrorlist to allow all French mirrors in addition to the one at the top.
    When the usb installation is over, I run this script :
    "installation_xfce.sh"  (there may be some errors left, I modify this script as I learn) :
    #!/bin/bash
    # expected environment : freshly installed archlinux, login : root.
    echo "Are you connected to internet ? If not, please Ctrl+C and reload this script when connected"
    echo "Otherwise, press ENTER to continue installation"
    read var_dummy
    echo "Creation of the user : please type in your user name :"
    read var_username
    useradd -u 1000 -g users -G audio,lp,storage,optical,video,wheel,games,power,network -d /home/$var_username/ -s /bin/bash -m $var_username
    echo "You will now be asked to create the password for this user:"
    passwd $var_username
    # Add servers for pacman to find packages
    cat >> /etc/pacman.conf << EOF
    [multilib]
    Include = /etc/pacman.d/mirrorlist
    [archlinuxfr]
    Server = http://repo.archlinux.fr/\$arch
    [catalyst]
    Server = http://catalyst.apocalypsus.net/repo/catalyst/\$arch
    EOF
    # Install packages
    pacman -Syyu
    pacman -S acpi acpid alsa-oss alsa-plugins alsa-utils catalyst catalyst-utils cpufrequtils cups dbus gstreamer0.10-base-plugins iptables laptop-mode-tools mesa net-tools netcfg ntp pm-utils rfkill rsync sudo ttf-dejavu vim wireless_tools xf86-input-evdev xorg-server xorg-utils xorg-xinit xorg-xinput yaourt conky gamin gnome-icon-theme gnome-keyring gvfs-afc network-manager-applet networkmanager slim slim-themes archlinux-themes-slim hicolor-icon-theme xfce4 xfce4-goodies
    # If pacman failed, better stop the script here, and wait for a network connection
    if [[ $?!=0 ]]
    then
    echo : failed to install packages - check your network connection, or review script
    exit 1
    fi
    # Fix sound issue
    cat > /home/$var_username/.asoundrc << EOF
    pcm.!default{
    type hw
    card 1
    device 0
    ctl.!default{
    type hw
    card 1
    device 0
    EOF
    chown $var_username:users /home/$var_username/.asoundrc
    # Configure video settings for X to use Catalyst
    if [[ ! -e /etc/X11/xorg.conf.d ]]
    then
    mkdir /etc/X11/xorg.conf.d
    fi
    cat > /etc/X11/xorg.conf.d/20-fglrx.conf << EOF
    Section "Monitor"
    Identifier "aticonfig-Monitor[0]-0"
    Option "VendorName" "ATI Proprietary Driver"
    Option "ModelName" "Generic Autodetecting Monitor"
    Option "DPMS" "true"
    EndSection
    Section "Device"
    Identifier "aticonfig-Device[0]-0"
    Driver "fglrx"
    EndSection
    EOF
    sed -e 's/top_left/bottom_right/' -e '/alignment/i\double_buffer yes' -e '/CPU Usage/a\${color lightgrey}Temperatures:' -e '/CPU Usage/a\ CPU:$color ${hwmon 0 temp 1}°C' </etc/conky/conky.conf >/home/$var_username/.conkyrc
    chown $var_username:users /home/$var_username/.conkyrc
    # Install clickpad support
    yaourt -S xf86-input-synaptics-clickpad
    # Add french keyboard to X
    sed '/MatchIsKeyboard/a\\tOption "XkbLayout" "fr"' </etc/X11/xorg.conf.d/10-evdev.conf >/etc/X11/xorg.conf.d/10-evdev.conf.new
    mv -f /etc/X11/xorg.conf.d/10-evdev.conf.new /etc/X11/xorg.conf.d/10-evdev.conf
    # Add new daemons, remove old ones, disable hwclock and remove netfs since I don't use it. add it if you need it
    sed '/DAEMONS=/c\DAEMONS=(!hwclock dbus syslog-ng networkmanager laptop-mode acpid @alsa @cupsd @cpufrequtils ntpd crond)' </etc/rc.conf >/etc/rc.conf.new
    mv -f /etc/rc.conf.new /etc/rc.conf
    # Slim login manager ; change theme
    mv /usr/share/slim/themes/archlinux-darch-grey /tmp/
    mv /usr/share/slim/themes/default /tmp/
    rm -r /usr/share/slim/themes/*
    mv /tmp/archlinux-darch-grey /usr/share/slim/themes
    mv /tmp/default /usr/share/slim/themes
    sed '/^current_theme/c\current_theme archlinux-darch-grey' </etc/slim.conf >/etc/slim.conf
    # XFCE login, and thunar launched as a daemon
    sed '/^# exec/c\' </etc/skel/.xinitrc >/tmp/.xinitrc
    sed '/^# .../c\' </tmp/.xinitrc >/home/$var_username/.xinitrc
    cat >> /home/$var_username/.xinitrc << EOF
    exec ck-launch-session startxfce4
    thunar --daemon &
    EOF
    chown $var_username:users /home/$var_username/.xinitrc
    # Boot to runlevel 5 now, and run slim then
    sed -e 's/id:3/#id:3/' -e 's/#id:5/id:5/' -e 's|x:5:respawn:/usr/bin/xdm|#x:5:respawn:/usr/bin/xdm|' -e 's|#x:5:respawn:/usr/bin/slim|x:5:respawn:/usr/bin/slim|' </etc/inittab >/etc/inittab.new
    mv -f /etc/inittab.new /etc/inittab
    # Add colored prompt to user and root
    sed '/^PS1/c\' </etc/skel/.bashrc >/root/.bashrc
    cat >> /root/.bashrc << EOF
    PS1='\[\e[0;32m\]\u@\h\[\e[m\] \[\e[0;35m\]\w\[\e[m\] \[\e[m\] \[\e[0;32m\]\t -\[\e[m\] \[\e[1;31m\]\$ \[\e[m\] '
    EOF
    cp /root/.bashrc /home/$var_username/.bashrc
    chown $var_username:users /home/$var_username/.bashrc
    # How does one do that automatically ?
    # Manually add user to sudoers
    EDITOR="vim" visudo
    # Reboot, because it's quick and I'm too lazy to learn how to start all the daemons and others.
    reboot
    I can mount as a user, no password asked, with :
    udisks --mount /dev/sdb2
    but the GUI method tells me "not authorized".
    "groups user" outputs :
    lp wheel games network video audio optical storage power users
    the command "ck-list-sessions" outputs :
    Session2:
    unix-user = '1000'
    realname = ''
    seat = 'Seat1'
    session-type = ''
    active = TRUE
    x11-display = ':0.0'
    x11-display-device = '/dev/tty7'
    display-device = ''
    remote-host-name = ''
    is-local = TRUE
    on-since = '2011-08-15T08:56:03.716103Z'
    login-session-id = '1'
    Session1:
    unix-user = '1000'
    realname = ''
    seat = 'Seat2'
    session-type = ''
    active = FALSE
    x11-display = ':0.0'
    x11-display-device = ''
    display-device = ''
    remote-host-name = ''
    is-local = TRUE
    on-since = '2011-08-15T08:56:03.573029Z'
    login-session-id = '1'
    For those who don't have time to read the installation script, DBUS is in the DAEMONS list of rc.conf, and .xinitrc launches : exec ck-launch-session startxfce4
    Any idea ?
    Last edited by choubbi (2011-08-15 15:05:04)

    Thanks a lot !
    That worked !
    I stumbled across this part of the wiki several times before, but didn't really understand so I had not tried.
    If anyone's interested in the script, here's the corrected version :
    #!/bin/bash
    # expected environment : freshly installed archlinux, login : root.
    echo "Are you connected to internet ? If not, please Ctrl+C and reload this script when connected"
    echo "Otherwise, press ENTER to continue installation"
    read var_dummy
    echo "Creation of the user : please type in your user name :"
    read var_username
    useradd -u 1000 -g users -G audio,lp,storage,optical,video,wheel,games,power,network -d /home/$var_username/ -s /bin/bash -m $var_username
    echo "You will now be asked to create the password for this user:"
    passwd $var_username
    # Add servers for pacman to find packages
    cat >> /etc/pacman.conf << EOF
    [multilib]
    Include = /etc/pacman.d/mirrorlist
    [archlinuxfr]
    Server = http://repo.archlinux.fr/\$arch
    [catalyst]
    Server = http://catalyst.apocalypsus.net/repo/catalyst/\$arch
    EOF
    # Install packages
    pacman -Syyu
    pacman -S acpi acpid alsa-oss alsa-plugins alsa-utils catalyst catalyst-utils cpufrequtils cups dbus gstreamer0.10-base-plugins iptables laptop-mode-tools mesa net-tools netcfg ntp pm-utils rfkill rsync sudo ttf-dejavu vim wireless_tools xf86-input-evdev xorg-server xorg-utils xorg-xinit xorg-xinput yaourt conky gamin gnome-icon-theme gnome-keyring gvfs-afc network-manager-applet networkmanager slim slim-themes archlinux-themes-slim hicolor-icon-theme xfce4 xfce4-goodies
    # If pacman failed, better stop the script here, and wait for a network connection
    if [[ $?!=0 ]]
    then
    echo : failed to install packages - check your network connection, or review script
    exit 1
    fi
    # Fix sound issue
    cat > /home/$var_username/.asoundrc << EOF
    pcm.!default{
    type hw
    card 1
    device 0
    ctl.!default{
    type hw
    card 1
    device 0
    EOF
    chown $var_username:users /home/$var_username/.asoundrc
    # Configure video settings for X to use Catalyst
    if [[ ! -e /etc/X11/xorg.conf.d ]]
    then
    mkdir /etc/X11/xorg.conf.d
    fi
    cat > /etc/X11/xorg.conf.d/20-fglrx.conf << EOF
    Section "Monitor"
    Identifier "aticonfig-Monitor[0]-0"
    Option "VendorName" "ATI Proprietary Driver"
    Option "ModelName" "Generic Autodetecting Monitor"
    Option "DPMS" "true"
    EndSection
    Section "Device"
    Identifier "aticonfig-Device[0]-0"
    Driver "fglrx"
    EndSection
    EOF
    sed -e 's/top_left/bottom_right/' -e '/alignment/i\double_buffer yes' -e '/CPU Usage/a\${color lightgrey}Temperatures:' -e '/CPU Usage/a\ CPU:$color ${hwmon 0 temp 1}°C' </etc/conky/conky.conf >/home/$var_username/.conkyrc
    chown $var_username:users /home/$var_username/.conkyrc
    # Install clickpad support
    yaourt -S xf86-input-synaptics-clickpad
    # Add french keyboard to X
    sed '/MatchIsKeyboard/a\\tOption "XkbLayout" "fr"' </etc/X11/xorg.conf.d/10-evdev.conf >/etc/X11/xorg.conf.d/10-evdev.conf.new
    mv -f /etc/X11/xorg.conf.d/10-evdev.conf.new /etc/X11/xorg.conf.d/10-evdev.conf
    # Add new daemons, remove old ones, disable hwclock and remove netfs since I don't use it. add it if you need it
    sed '/DAEMONS=/c\DAEMONS=(!hwclock dbus syslog-ng networkmanager laptop-mode acpid @alsa @cupsd @cpufrequtils ntpd crond)' </etc/rc.conf >/etc/rc.conf.new
    mv -f /etc/rc.conf.new /etc/rc.conf
    # Slim login manager ; change theme
    mv /usr/share/slim/themes/archlinux-darch-grey /tmp/
    mv /usr/share/slim/themes/default /tmp/
    rm -r /usr/share/slim/themes/*
    mv /tmp/archlinux-darch-grey /usr/share/slim/themes
    mv /tmp/default /usr/share/slim/themes
    sed '/^current_theme/c\current_theme archlinux-darch-grey' </etc/slim.conf >/etc/slim.conf
    # XFCE login, and thunar launched as a daemon (note that the part with 'if [ -d /etc/X11/xinit/xinitrc.d ]" is not present, to avoid mounting problems when logged as regular user)
    cat > /home/$var_username/.xinitrc << EOF
    #!/bin/sh
    # ~/.xinitrc
    # Executed by startx (run your window manager from here)
    exec ck-launch-session startxfce4
    thunar --daemon &
    EOF
    chown $var_username:users /home/$var_username/.xinitrc
    # Boot to runlevel 5 now, and run slim then
    sed -e 's/id:3/#id:3/' -e 's/#id:5/id:5/' -e 's|x:5:respawn:/usr/bin/xdm|#x:5:respawn:/usr/bin/xdm|' -e 's|#x:5:respawn:/usr/bin/slim|x:5:respawn:/usr/bin/slim|' </etc/inittab >/etc/inittab.new
    mv -f /etc/inittab.new /etc/inittab
    # Add colored prompt to user and root
    sed '/^PS1/c\' </etc/skel/.bashrc >/root/.bashrc
    cat >> /root/.bashrc << EOF
    PS1='\[\e[0;32m\]\u@\h\[\e[m\] \[\e[0;35m\]\w\[\e[m\] \[\e[m\] \[\e[0;32m\]\t -\[\e[m\] \[\e[1;31m\]\$ \[\e[m\] '
    EOF
    cp /root/.bashrc /home/$var_username/.bashrc
    chown $var_username:users /home/$var_username/.bashrc
    # How does one do that automatically ?
    # Manually add user to sudoers
    EDITOR="vim" visudo
    # Reboot, because it's quick and I'm too lazy to learn how to start all the daemons and others.
    reboot
    The important part of the script to solve the problem is :
    cat > /home/$var_username/.xinitrc << EOF
    #!/bin/sh
    # ~/.xinitrc
    # Executed by startx (run your window manager from here)
    exec ck-launch-session startxfce4
    thunar --daemon &
    EOF
    chown $var_username:users /home/$var_username/.xinitrc

  • Security realm - Security:097533 - Developing own authentication provider

    hi everyone,
    i Developing own authentication provider and i installed a security patch, so while i restarting the weblogic server  encountered the below Exeption:
    <10/05/2013 05:54:33 PM COT> <Error> <Security> <BEA-090870> <The realm "myrealm" failed to be loaded: weblogic.security.service.SecurityServiceException: com.bea.common.engine.ServiceInitializationException: com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for AS400Realm is not specified..
    weblogic.security.service.SecurityServiceException: com.bea.common.engine.ServiceInitializationException: com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for AS400Realm is not specified.
    at weblogic.security.service.CSSWLSDelegateImpl.initializeServiceEngine(CSSWLSDelegateImpl.java:341)
    at weblogic.security.service.CSSWLSDelegateImpl.initialize(CSSWLSDelegateImpl.java:220)
    at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.InitializeServiceEngine(CommonSecurityServiceManagerDelegateImpl.java:1789)
    at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.initializeRealm(CommonSecurityServiceManagerDelegateImpl.java:443)
    at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.loadRealm(CommonSecurityServiceManagerDelegateImpl.java:841)
    Truncated. see log file for complete stacktrace
    Caused By: com.bea.common.engine.ServiceInitializationException: com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for AS400Realm is not specified.
    at com.bea.common.engine.internal.ServiceEngineImpl.findOrStartService(ServiceEngineImpl.java:365)
    at com.bea.common.engine.internal.ServiceEngineImpl.findOrStartService(ServiceEngineImpl.java:315)
    at com.bea.common.engine.internal.ServiceEngineImpl.lookupService(ServiceEngineImpl.java:257)
    at com.bea.common.engine.internal.ServicesImpl.getService(ServicesImpl.java:72)
    at weblogic.security.service.internal.WLSIdentityServiceImpl.initialize(WLSIdentityServiceImpl.java:46)
    Truncated. see log file for complete stacktrace
    Caused By: com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for AS400Realm is not specified.
    at com.bea.common.security.internal.legacy.service.SecurityProviderImpl.init(SecurityProviderImpl.java:42)
    at com.bea.common.engine.internal.ServiceEngineImpl.findOrStartService(ServiceEngineImpl.java:363)
    at com.bea.common.engine.internal.ServiceEngineImpl.findOrStartService(ServiceEngineImpl.java:315)
    at com.bea.common.engine.internal.ServiceEngineImpl.lookupService(ServiceEngineImpl.java:257)
    at com.bea.common.engine.internal.ServicesImpl.getService(ServicesImpl.java:72)
    Truncated. see log file for complete stacktrace
    this is the config.xml :
    <domain xmlns="http://xmlns.oracle.com/weblogic/domain" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/security/xacml http://xmlns.oracle.com/weblogic/security/xacml/1.0/xacml.xsd http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator/1.0/passwordvalidator.xsd http://xmlns.oracle.com/weblogic/domain http://xmlns.oracle.com/weblogic/1.0/domain.xsd http://xmlns.oracle.com/weblogic/security http://xmlns.oracle.com/weblogic/1.0/security.xsd http://xmlns.oracle.com/weblogic/security/wls http://xmlns.oracle.com/weblogic/security/wls/1.0/wls.xsd http://xmlns.oracle.com/weblogic/security/extension http://xmlns.oracle.com/weblogic/1.0/security.xsd">
    <name>base_domain</name>
    <domain-version>12.1.1.0</domain-version>
    <security-configuration>
    <name>base_domain</name>
    <realm>
    <sec:authentication-provider xsi:type="wls:default-authenticatorType"></sec:authentication-provider>
    <sec:authentication-provider xsi:type="wls:default-identity-asserterType">
    <sec:active-type>AuthenticatedUser</sec:active-type>
    </sec:authentication-provider>
    <sec:authentication-provider xmlns:ext="http://xmlns.oracle.com/weblogic/security/extension" xsi:type="ext:as400-realmType">
    <sec:name>AS400Realm</sec:name>
    <sec:control-flag>OPTIONAL</sec:control-flag>
    </sec:authentication-provider>
    <sec:role-mapper xmlns:xac="http://xmlns.oracle.com/weblogic/security/xacml" xsi:type="xac:xacml-role-mapperType"></sec:role-mapper>
    <sec:authorizer xmlns:xac="http://xmlns.oracle.com/weblogic/security/xacml" xsi:type="xac:xacml-authorizerType"></sec:authorizer>
    <sec:adjudicator xsi:type="wls:default-adjudicatorType"></sec:adjudicator>
    <sec:credential-mapper xsi:type="wls:default-credential-mapperType"></sec:credential-mapper>
    <sec:cert-path-provider xsi:type="wls:web-logic-cert-path-providerType"></sec:cert-path-provider>
    <sec:cert-path-builder>WebLogicCertPathProvider</sec:cert-path-builder>
    <sec:user-lockout-manager>
    <sec:lockout-enabled>false</sec:lockout-enabled>
    </sec:user-lockout-manager>
    <sec:deploy-role-ignored>false</sec:deploy-role-ignored>
    <sec:deploy-policy-ignored>false</sec:deploy-policy-ignored>
    <sec:security-dd-model>DDOnly</sec:security-dd-model>
    <sec:name>myrealm</sec:name>
    <sec:password-validator xmlns:pas="http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator" xsi:type="pas:system-password-validatorType">
    <sec:name>SystemPasswordValidator</sec:name>
    <pas:min-password-length>8</pas:min-password-length>
    <pas:min-numeric-or-special-characters>1</pas:min-numeric-or-special-characters>
    </sec:password-validator>
    </realm>
    <default-realm>myrealm</default-realm>
    <credential-encrypted>{AES}kyVB/9J9Fbvp11tAnYgn6grV6wQwNZZGHSh2JLQtesxS46Re+QCfIAttNE5JugllQvUHOhE+pz0AnEfYL2p5q2oeRsjqoQz2/1Lg8x+3WMoKic0xnRzw2RWoFjQo3F9x</credential-encrypted>
    <node-manager-username>weblogic</node-manager-username>
    <node-manager-password-encrypted>{AES}4jkSbv5dMOl6cRpRa4QwB83XVavtq168cV4L+NSFDcI=</node-manager-password-encrypted>
    <cross-domain-security-enabled>true</cross-domain-security-enabled>
    </security-configuration>
    <server>
    <name>AdminServer</name>
    <listen-address>localhost</listen-address>
    <staging-mode>nostage</staging-mode>
    </server>
    <embedded-ldap>
    <name>base_domain</name>
    <credential-encrypted>{AES}9YeG1UFRNQzM0v6/j8cFvT9x9fkJUl1FJOWGInl5dax26FgMNEVwKNxOBHvW2opm</credential-encrypted>
    </embedded-ldap>
    <configuration-version>12.1.1.0</configuration-version>
    this is the mbean xml (A400Realmmbean.xml):
    <?xml version="1.0" ?>
    <!DOCTYPE MBeanType SYSTEM "commo.dtd">
    <MBeanType Name = "AS400Realm" DisplayName = "AS400Realm"
    Package = "co.com.claro.security"
    Extends = "weblogic.management.security.authentication.Authenticator"
    PersistPolicy = "OnUpdate"
    >
    <MbeanAttribute Name = "ProviderClassName" Type = "java.lang.String"
    Writeable = "false"
    Default =
    "&quot;co.com.claro.AS400Realm&quot;"
    />
    <MBeanAttribute Name = "Description" Type = "java.lang.String"
    Writeable = "false" Default = "&quot;My Identity Assertion Provider&quot;"
    />
    <MBeanAttribute Name = "Version" Type = "java.lang.String"
    Writeable = "false" Default = "&quot;1.0&quot;"
    />
    </MBeanType>
    and the runtime class:
    AS400Realm.java:
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package co.com.claro.security;
    import java.util.HashMap;
    import javax.security.auth.login.AppConfigurationEntry;
    import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
    import weblogic.management.security.ProviderMBean;
    import weblogic.security.provider.PrincipalValidatorImpl;
    import weblogic.security.spi.AuthenticationProviderV2;
    import weblogic.security.spi.IdentityAsserterV2;
    import weblogic.security.spi.PrincipalValidator;
    import weblogic.security.spi.SecurityServices;
    import weblogic.security.principal.WLSGroupImpl;
    import weblogic.security.principal.WLSUserImpl;
    public final class AS400Realm implements AuthenticationProviderV2
    private String description;
    // private SimpleSampleAuthenticatorDatabase database;
    private LoginModuleControlFlag controlFlag;
    // public String PARAM_JAAS_CONTEXT = "jaas-context";
    // public String PARAM_DATASOURCE_NAME = "jdbc/Oracle";
    // public String DEFAULT_GROUP_NAME = "default";
    public void initialize(ProviderMBean mbean, SecurityServices services)
    System.out.println("AS400Realm.initialize");
    AS400RealmMBean myMBean = (AS400RealmMBean)mbean;
    description = myMBean.getDescription() + "\n" + myMBean.getVersion();
    // database = new SimpleSampleAuthenticatorDatabase(myMBean);
    String flag = myMBean.getControlFlag();
    if (flag.equalsIgnoreCase("REQUIRED")) {
    controlFlag = LoginModuleControlFlag.REQUIRED;
    } else if (flag.equalsIgnoreCase("OPTIONAL")) {
    controlFlag = LoginModuleControlFlag.OPTIONAL;
    } else if (flag.equalsIgnoreCase("REQUISITE")) {
    controlFlag = LoginModuleControlFlag.REQUISITE;
    } else if (flag.equalsIgnoreCase("SUFFICIENT")) {
    controlFlag = LoginModuleControlFlag.SUFFICIENT;
    } else {
    throw new IllegalArgumentException("invalid flag value" + flag);
    public String getDescription()
    return description;
    public void shutdown()
    System.out.println("AS400Realm.shutdown");
    private AppConfigurationEntry getConfiguration(HashMap options)
    options.put("PARAM_DATASOURCE_NAME", "jdbc/Oracle");
    return new
    AppConfigurationEntry(
    "co.com.claro.security.AS400LoginModule",
    controlFlag,
    options
    public AppConfigurationEntry getLoginModuleConfiguration()
    HashMap options = new HashMap();
    return getConfiguration(options);
    public AppConfigurationEntry getAssertionModuleConfiguration()
    HashMap options = new HashMap();
    options.put("IdentityAssertion","true");
    return getConfiguration(options);
    public PrincipalValidator getPrincipalValidator()
    return new PrincipalValidatorImpl();
    public IdentityAsserterV2 getIdentityAsserter()
    return null;
    AS400LoginModule.java :
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package co.com.claro.security;
    import com.ibm.as400.access.AS400;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Enumeration;
    import java.util.Map;
    import java.util.Vector;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.security.auth.Subject;
    import javax.security.auth.callback.Callback;
    import javax.security.auth.callback.CallbackHandler;
    import javax.security.auth.callback.NameCallback;
    import javax.security.auth.callback.PasswordCallback;
    import javax.security.auth.callback.UnsupportedCallbackException;
    import javax.security.auth.login.LoginException;
    import javax.security.auth.login.FailedLoginException;
    import javax.security.auth.spi.LoginModule;
    import javax.sql.DataSource;
    import weblogic.security.spi.WLSGroup;
    import weblogic.security.spi.WLSUser;
    import weblogic.security.principal.WLSGroupImpl;
    import weblogic.security.principal.WLSUserImpl;
    * @author dmunoz
    final public class AS400LoginModule implements LoginModule {
    private Subject subject;
    private CallbackHandler callbackHandler;
    private String PARAM_DATASOURCE_NAME = "jdbc/Oracle";
    private String DEFAULT_GROUP_NAME = "default";
    // Determine whether this is a login or assert identity
    private boolean isIdentityAssertion;
    // Authentication status
    private boolean loginSucceeded;
    private boolean principalsInSubject;
    private Vector principalsForSubject = new Vector();
    public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
    // only called (once!) after the constructor and before login
    System.out.println("SimpleSampleLoginModuleImpl.initialize");
    this.subject = subject;
    this.callbackHandler = callbackHandler;
    // Check for Identity Assertion option
    isIdentityAssertion =
    "true".equalsIgnoreCase((String) options.get("IdentityAssertion"));
    private boolean authenticateAS400(String user, String passwd) throws Exception {
    String host ="172.31.2.80";//Config.getProperty(Config.AS400_AUTHENTICATION_HOST);
    AS400 as400System;
    as400System = new AS400(host, user, passwd);
    return as400System.validateSignon();
    public boolean login() throws LoginException {
    // only called (once!) after initialize
    System.out.println("SimpleSampleLoginModuleImpl.login");
    // loginSucceeded should be false
    // principalsInSubject should be false
    Callback[] callbacks = getCallbacks();
    String userName = getUserName(callbacks);
    if (userName.length() > 0) {       
    if (!isIdentityAssertion) {               
    String passwordHave = getPasswordHave(userName, callbacks);
    try{
    loginSucceeded = authenticateAS400(userName, passwordHave);
    }catch(Exception e){
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.WARNING, null, e);
    throw new LoginException(e.getMessage());
    } else {
    // anonymous login - let it through?
    System.out.println("\tempty userName");
    if (loginSucceeded) {
    principalsForSubject.add(new WLSUserImpl(userName));
    addGroupsForSubject(userName);
    return loginSucceeded;
    public boolean commit() throws LoginException {
    // only called (once!) after login
    // loginSucceeded should be true or false
    // principalsInSubject should be false
    // user should be null if !loginSucceeded, null or not-null otherwise
    // group should be null if user == null, null or not-null otherwise
    System.out.println("SimpleSampleLoginModule.commit");
    if (loginSucceeded) {
    subject.getPrincipals().addAll(principalsForSubject);
    principalsInSubject = true;
    return true;
    } else {
    return false;
    public boolean abort() throws LoginException {
    // The abort method is called to abort the authentication process. This is
    // phase 2 of authentication when phase 1 fails. It is called if the
    // LoginContext's overall authentication failed.
    // loginSucceeded should be true or false
    // user should be null if !loginSucceeded, otherwise null or not-null
    // group should be null if user == null, otherwise null or not-null
    // principalsInSubject should be false if user is null, otherwise true
    // or false
    System.out.println("SimpleSampleLoginModule.abort");
    if (principalsInSubject) {
    subject.getPrincipals().removeAll(principalsForSubject);
    principalsInSubject = false;
    return true;
    public boolean logout() throws LoginException {
    // should never be called
    System.out.println("SimpleSampleLoginModule.logout");
    return true;
    private void throwLoginException(String msg) throws LoginException {
    System.out.println("Throwing LoginException(" + msg + ")");
    throw new LoginException(msg);
    private void throwFailedLoginException(String msg) throws FailedLoginException {
    System.out.println("Throwing FailedLoginException(" + msg + ")");
    throw new FailedLoginException(msg);
    private Callback[] getCallbacks() throws LoginException {
    if (callbackHandler == null) {
    throwLoginException("No CallbackHandler Specified");
    Callback[] callbacks;
    if (isIdentityAssertion) {
    callbacks = new Callback[1];
    } else {
    callbacks = new Callback[2];
    callbacks[1] = new PasswordCallback("password: ", false);
    callbacks[0] = new NameCallback("username: ");
    try {
    callbackHandler.handle(callbacks);
    } catch (IOException e) {
    throw new LoginException(e.toString());
    } catch (UnsupportedCallbackException e) {
    throwLoginException(e.toString() + " " + e.getCallback().toString());
    return callbacks;
    private String getUserName(Callback[] callbacks) throws LoginException {
    String userName = ((NameCallback) callbacks[0]).getName();
    if (userName == null) {
    throwLoginException("Username not supplied.");
    System.out.println("\tuserName\t= " + userName);
    return userName;
    private void addGroupsForSubject(String userName) {
    try {
    for (Enumeration e = getGroupNamesAS400(userName);
    e.hasMoreElements();) {
    String groupName = (String) e.nextElement();
    System.out.println("\tgroupName\t= " + groupName);
    principalsForSubject.add(new WLSGroupImpl(groupName));
    } catch (Exception ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    public Enumeration getGroupNamesAS400(String usuario)
    throws Exception {
    if(usuario == null) {
    throw new Exception("Usuario no puede ser vacio");
    Vector<String> grupos = new Vector<String>();
    grupos.add(DEFAULT_GROUP_NAME);
    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement statement = null;
    try {
    Context c = new InitialContext();
    DataSource dst = (DataSource) c.lookup(PARAM_DATASOURCE_NAME);
    conn = dst.getConnection();
    String query = "SELECT COD_ROL AS ROL " +
    "FROM gestionnew.us_rol_perfil " +
    "JOIN gestionnew.usuarios " +
    "ON us_rol_perfil.id_perfil = usuarios.id_perfil " +
    "WHERE upper(usuarios.usuariorr) = ?";
    statement = conn.prepareStatement(query);
    statement.setString(1, usuario.toUpperCase());
    rs = statement.executeQuery();
    while (rs.next()) {
    grupos.add(rs.getString("ROL"));
    } catch (SQLException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    } catch (NamingException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
    if (conn != null) {
    try {
    conn.close();
    } catch (SQLException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    if (rs != null) {
    try {
    rs.close();
    } catch (SQLException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    if (statement != null) {
    try {
    statement.close();
    } catch (SQLException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    return grupos.elements();
    private String getPasswordHave(String userName, Callback[] callbacks) throws
    LoginException {
    PasswordCallback passwordCallback = (PasswordCallback) callbacks[1];
    char[] password = passwordCallback.getPassword();
    passwordCallback.clearPassword();
    if (password == null || password.length < 1) {
    throwLoginException("Authentication Failed: User " + userName +
    ". Password not supplied");
    String passwd = new String(password);
    System.out.println("\tpasswordHave\t= " + passwd);
    return passwd;
    thanks

    hi everyone,
    i Developing own authentication provider and i installed a security patch, so while i restarting the weblogic server  encountered the below Exeption:
    <10/05/2013 05:54:33 PM COT> <Error> <Security> <BEA-090870> <The realm "myrealm" failed to be loaded: weblogic.security.service.SecurityServiceException: com.bea.common.engine.ServiceInitializationException: com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for AS400Realm is not specified..
    weblogic.security.service.SecurityServiceException: com.bea.common.engine.ServiceInitializationException: com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for AS400Realm is not specified.
    at weblogic.security.service.CSSWLSDelegateImpl.initializeServiceEngine(CSSWLSDelegateImpl.java:341)
    at weblogic.security.service.CSSWLSDelegateImpl.initialize(CSSWLSDelegateImpl.java:220)
    at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.InitializeServiceEngine(CommonSecurityServiceManagerDelegateImpl.java:1789)
    at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.initializeRealm(CommonSecurityServiceManagerDelegateImpl.java:443)
    at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.loadRealm(CommonSecurityServiceManagerDelegateImpl.java:841)
    Truncated. see log file for complete stacktrace
    Caused By: com.bea.common.engine.ServiceInitializationException: com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for AS400Realm is not specified.
    at com.bea.common.engine.internal.ServiceEngineImpl.findOrStartService(ServiceEngineImpl.java:365)
    at com.bea.common.engine.internal.ServiceEngineImpl.findOrStartService(ServiceEngineImpl.java:315)
    at com.bea.common.engine.internal.ServiceEngineImpl.lookupService(ServiceEngineImpl.java:257)
    at com.bea.common.engine.internal.ServicesImpl.getService(ServicesImpl.java:72)
    at weblogic.security.service.internal.WLSIdentityServiceImpl.initialize(WLSIdentityServiceImpl.java:46)
    Truncated. see log file for complete stacktrace
    Caused By: com.bea.common.engine.SecurityServiceRuntimeException: [Security:097533]SecurityProvider service class name for AS400Realm is not specified.
    at com.bea.common.security.internal.legacy.service.SecurityProviderImpl.init(SecurityProviderImpl.java:42)
    at com.bea.common.engine.internal.ServiceEngineImpl.findOrStartService(ServiceEngineImpl.java:363)
    at com.bea.common.engine.internal.ServiceEngineImpl.findOrStartService(ServiceEngineImpl.java:315)
    at com.bea.common.engine.internal.ServiceEngineImpl.lookupService(ServiceEngineImpl.java:257)
    at com.bea.common.engine.internal.ServicesImpl.getService(ServicesImpl.java:72)
    Truncated. see log file for complete stacktrace
    this is the config.xml :
    <domain xmlns="http://xmlns.oracle.com/weblogic/domain" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/security/xacml http://xmlns.oracle.com/weblogic/security/xacml/1.0/xacml.xsd http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator/1.0/passwordvalidator.xsd http://xmlns.oracle.com/weblogic/domain http://xmlns.oracle.com/weblogic/1.0/domain.xsd http://xmlns.oracle.com/weblogic/security http://xmlns.oracle.com/weblogic/1.0/security.xsd http://xmlns.oracle.com/weblogic/security/wls http://xmlns.oracle.com/weblogic/security/wls/1.0/wls.xsd http://xmlns.oracle.com/weblogic/security/extension http://xmlns.oracle.com/weblogic/1.0/security.xsd">
    <name>base_domain</name>
    <domain-version>12.1.1.0</domain-version>
    <security-configuration>
    <name>base_domain</name>
    <realm>
    <sec:authentication-provider xsi:type="wls:default-authenticatorType"></sec:authentication-provider>
    <sec:authentication-provider xsi:type="wls:default-identity-asserterType">
    <sec:active-type>AuthenticatedUser</sec:active-type>
    </sec:authentication-provider>
    <sec:authentication-provider xmlns:ext="http://xmlns.oracle.com/weblogic/security/extension" xsi:type="ext:as400-realmType">
    <sec:name>AS400Realm</sec:name>
    <sec:control-flag>OPTIONAL</sec:control-flag>
    </sec:authentication-provider>
    <sec:role-mapper xmlns:xac="http://xmlns.oracle.com/weblogic/security/xacml" xsi:type="xac:xacml-role-mapperType"></sec:role-mapper>
    <sec:authorizer xmlns:xac="http://xmlns.oracle.com/weblogic/security/xacml" xsi:type="xac:xacml-authorizerType"></sec:authorizer>
    <sec:adjudicator xsi:type="wls:default-adjudicatorType"></sec:adjudicator>
    <sec:credential-mapper xsi:type="wls:default-credential-mapperType"></sec:credential-mapper>
    <sec:cert-path-provider xsi:type="wls:web-logic-cert-path-providerType"></sec:cert-path-provider>
    <sec:cert-path-builder>WebLogicCertPathProvider</sec:cert-path-builder>
    <sec:user-lockout-manager>
    <sec:lockout-enabled>false</sec:lockout-enabled>
    </sec:user-lockout-manager>
    <sec:deploy-role-ignored>false</sec:deploy-role-ignored>
    <sec:deploy-policy-ignored>false</sec:deploy-policy-ignored>
    <sec:security-dd-model>DDOnly</sec:security-dd-model>
    <sec:name>myrealm</sec:name>
    <sec:password-validator xmlns:pas="http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator" xsi:type="pas:system-password-validatorType">
    <sec:name>SystemPasswordValidator</sec:name>
    <pas:min-password-length>8</pas:min-password-length>
    <pas:min-numeric-or-special-characters>1</pas:min-numeric-or-special-characters>
    </sec:password-validator>
    </realm>
    <default-realm>myrealm</default-realm>
    <credential-encrypted>{AES}kyVB/9J9Fbvp11tAnYgn6grV6wQwNZZGHSh2JLQtesxS46Re+QCfIAttNE5JugllQvUHOhE+pz0AnEfYL2p5q2oeRsjqoQz2/1Lg8x+3WMoKic0xnRzw2RWoFjQo3F9x</credential-encrypted>
    <node-manager-username>weblogic</node-manager-username>
    <node-manager-password-encrypted>{AES}4jkSbv5dMOl6cRpRa4QwB83XVavtq168cV4L+NSFDcI=</node-manager-password-encrypted>
    <cross-domain-security-enabled>true</cross-domain-security-enabled>
    </security-configuration>
    <server>
    <name>AdminServer</name>
    <listen-address>localhost</listen-address>
    <staging-mode>nostage</staging-mode>
    </server>
    <embedded-ldap>
    <name>base_domain</name>
    <credential-encrypted>{AES}9YeG1UFRNQzM0v6/j8cFvT9x9fkJUl1FJOWGInl5dax26FgMNEVwKNxOBHvW2opm</credential-encrypted>
    </embedded-ldap>
    <configuration-version>12.1.1.0</configuration-version>
    this is the mbean xml (A400Realmmbean.xml):
    <?xml version="1.0" ?>
    <!DOCTYPE MBeanType SYSTEM "commo.dtd">
    <MBeanType Name = "AS400Realm" DisplayName = "AS400Realm"
    Package = "co.com.claro.security"
    Extends = "weblogic.management.security.authentication.Authenticator"
    PersistPolicy = "OnUpdate"
    >
    <MbeanAttribute Name = "ProviderClassName" Type = "java.lang.String"
    Writeable = "false"
    Default =
    "&quot;co.com.claro.AS400Realm&quot;"
    />
    <MBeanAttribute Name = "Description" Type = "java.lang.String"
    Writeable = "false" Default = "&quot;My Identity Assertion Provider&quot;"
    />
    <MBeanAttribute Name = "Version" Type = "java.lang.String"
    Writeable = "false" Default = "&quot;1.0&quot;"
    />
    </MBeanType>
    and the runtime class:
    AS400Realm.java:
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package co.com.claro.security;
    import java.util.HashMap;
    import javax.security.auth.login.AppConfigurationEntry;
    import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
    import weblogic.management.security.ProviderMBean;
    import weblogic.security.provider.PrincipalValidatorImpl;
    import weblogic.security.spi.AuthenticationProviderV2;
    import weblogic.security.spi.IdentityAsserterV2;
    import weblogic.security.spi.PrincipalValidator;
    import weblogic.security.spi.SecurityServices;
    import weblogic.security.principal.WLSGroupImpl;
    import weblogic.security.principal.WLSUserImpl;
    public final class AS400Realm implements AuthenticationProviderV2
    private String description;
    // private SimpleSampleAuthenticatorDatabase database;
    private LoginModuleControlFlag controlFlag;
    // public String PARAM_JAAS_CONTEXT = "jaas-context";
    // public String PARAM_DATASOURCE_NAME = "jdbc/Oracle";
    // public String DEFAULT_GROUP_NAME = "default";
    public void initialize(ProviderMBean mbean, SecurityServices services)
    System.out.println("AS400Realm.initialize");
    AS400RealmMBean myMBean = (AS400RealmMBean)mbean;
    description = myMBean.getDescription() + "\n" + myMBean.getVersion();
    // database = new SimpleSampleAuthenticatorDatabase(myMBean);
    String flag = myMBean.getControlFlag();
    if (flag.equalsIgnoreCase("REQUIRED")) {
    controlFlag = LoginModuleControlFlag.REQUIRED;
    } else if (flag.equalsIgnoreCase("OPTIONAL")) {
    controlFlag = LoginModuleControlFlag.OPTIONAL;
    } else if (flag.equalsIgnoreCase("REQUISITE")) {
    controlFlag = LoginModuleControlFlag.REQUISITE;
    } else if (flag.equalsIgnoreCase("SUFFICIENT")) {
    controlFlag = LoginModuleControlFlag.SUFFICIENT;
    } else {
    throw new IllegalArgumentException("invalid flag value" + flag);
    public String getDescription()
    return description;
    public void shutdown()
    System.out.println("AS400Realm.shutdown");
    private AppConfigurationEntry getConfiguration(HashMap options)
    options.put("PARAM_DATASOURCE_NAME", "jdbc/Oracle");
    return new
    AppConfigurationEntry(
    "co.com.claro.security.AS400LoginModule",
    controlFlag,
    options
    public AppConfigurationEntry getLoginModuleConfiguration()
    HashMap options = new HashMap();
    return getConfiguration(options);
    public AppConfigurationEntry getAssertionModuleConfiguration()
    HashMap options = new HashMap();
    options.put("IdentityAssertion","true");
    return getConfiguration(options);
    public PrincipalValidator getPrincipalValidator()
    return new PrincipalValidatorImpl();
    public IdentityAsserterV2 getIdentityAsserter()
    return null;
    AS400LoginModule.java :
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package co.com.claro.security;
    import com.ibm.as400.access.AS400;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Enumeration;
    import java.util.Map;
    import java.util.Vector;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.security.auth.Subject;
    import javax.security.auth.callback.Callback;
    import javax.security.auth.callback.CallbackHandler;
    import javax.security.auth.callback.NameCallback;
    import javax.security.auth.callback.PasswordCallback;
    import javax.security.auth.callback.UnsupportedCallbackException;
    import javax.security.auth.login.LoginException;
    import javax.security.auth.login.FailedLoginException;
    import javax.security.auth.spi.LoginModule;
    import javax.sql.DataSource;
    import weblogic.security.spi.WLSGroup;
    import weblogic.security.spi.WLSUser;
    import weblogic.security.principal.WLSGroupImpl;
    import weblogic.security.principal.WLSUserImpl;
    * @author dmunoz
    final public class AS400LoginModule implements LoginModule {
    private Subject subject;
    private CallbackHandler callbackHandler;
    private String PARAM_DATASOURCE_NAME = "jdbc/Oracle";
    private String DEFAULT_GROUP_NAME = "default";
    // Determine whether this is a login or assert identity
    private boolean isIdentityAssertion;
    // Authentication status
    private boolean loginSucceeded;
    private boolean principalsInSubject;
    private Vector principalsForSubject = new Vector();
    public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
    // only called (once!) after the constructor and before login
    System.out.println("SimpleSampleLoginModuleImpl.initialize");
    this.subject = subject;
    this.callbackHandler = callbackHandler;
    // Check for Identity Assertion option
    isIdentityAssertion =
    "true".equalsIgnoreCase((String) options.get("IdentityAssertion"));
    private boolean authenticateAS400(String user, String passwd) throws Exception {
    String host ="172.31.2.80";//Config.getProperty(Config.AS400_AUTHENTICATION_HOST);
    AS400 as400System;
    as400System = new AS400(host, user, passwd);
    return as400System.validateSignon();
    public boolean login() throws LoginException {
    // only called (once!) after initialize
    System.out.println("SimpleSampleLoginModuleImpl.login");
    // loginSucceeded should be false
    // principalsInSubject should be false
    Callback[] callbacks = getCallbacks();
    String userName = getUserName(callbacks);
    if (userName.length() > 0) {       
    if (!isIdentityAssertion) {               
    String passwordHave = getPasswordHave(userName, callbacks);
    try{
    loginSucceeded = authenticateAS400(userName, passwordHave);
    }catch(Exception e){
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.WARNING, null, e);
    throw new LoginException(e.getMessage());
    } else {
    // anonymous login - let it through?
    System.out.println("\tempty userName");
    if (loginSucceeded) {
    principalsForSubject.add(new WLSUserImpl(userName));
    addGroupsForSubject(userName);
    return loginSucceeded;
    public boolean commit() throws LoginException {
    // only called (once!) after login
    // loginSucceeded should be true or false
    // principalsInSubject should be false
    // user should be null if !loginSucceeded, null or not-null otherwise
    // group should be null if user == null, null or not-null otherwise
    System.out.println("SimpleSampleLoginModule.commit");
    if (loginSucceeded) {
    subject.getPrincipals().addAll(principalsForSubject);
    principalsInSubject = true;
    return true;
    } else {
    return false;
    public boolean abort() throws LoginException {
    // The abort method is called to abort the authentication process. This is
    // phase 2 of authentication when phase 1 fails. It is called if the
    // LoginContext's overall authentication failed.
    // loginSucceeded should be true or false
    // user should be null if !loginSucceeded, otherwise null or not-null
    // group should be null if user == null, otherwise null or not-null
    // principalsInSubject should be false if user is null, otherwise true
    // or false
    System.out.println("SimpleSampleLoginModule.abort");
    if (principalsInSubject) {
    subject.getPrincipals().removeAll(principalsForSubject);
    principalsInSubject = false;
    return true;
    public boolean logout() throws LoginException {
    // should never be called
    System.out.println("SimpleSampleLoginModule.logout");
    return true;
    private void throwLoginException(String msg) throws LoginException {
    System.out.println("Throwing LoginException(" + msg + ")");
    throw new LoginException(msg);
    private void throwFailedLoginException(String msg) throws FailedLoginException {
    System.out.println("Throwing FailedLoginException(" + msg + ")");
    throw new FailedLoginException(msg);
    private Callback[] getCallbacks() throws LoginException {
    if (callbackHandler == null) {
    throwLoginException("No CallbackHandler Specified");
    Callback[] callbacks;
    if (isIdentityAssertion) {
    callbacks = new Callback[1];
    } else {
    callbacks = new Callback[2];
    callbacks[1] = new PasswordCallback("password: ", false);
    callbacks[0] = new NameCallback("username: ");
    try {
    callbackHandler.handle(callbacks);
    } catch (IOException e) {
    throw new LoginException(e.toString());
    } catch (UnsupportedCallbackException e) {
    throwLoginException(e.toString() + " " + e.getCallback().toString());
    return callbacks;
    private String getUserName(Callback[] callbacks) throws LoginException {
    String userName = ((NameCallback) callbacks[0]).getName();
    if (userName == null) {
    throwLoginException("Username not supplied.");
    System.out.println("\tuserName\t= " + userName);
    return userName;
    private void addGroupsForSubject(String userName) {
    try {
    for (Enumeration e = getGroupNamesAS400(userName);
    e.hasMoreElements();) {
    String groupName = (String) e.nextElement();
    System.out.println("\tgroupName\t= " + groupName);
    principalsForSubject.add(new WLSGroupImpl(groupName));
    } catch (Exception ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    public Enumeration getGroupNamesAS400(String usuario)
    throws Exception {
    if(usuario == null) {
    throw new Exception("Usuario no puede ser vacio");
    Vector<String> grupos = new Vector<String>();
    grupos.add(DEFAULT_GROUP_NAME);
    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement statement = null;
    try {
    Context c = new InitialContext();
    DataSource dst = (DataSource) c.lookup(PARAM_DATASOURCE_NAME);
    conn = dst.getConnection();
    String query = "SELECT COD_ROL AS ROL " +
    "FROM gestionnew.us_rol_perfil " +
    "JOIN gestionnew.usuarios " +
    "ON us_rol_perfil.id_perfil = usuarios.id_perfil " +
    "WHERE upper(usuarios.usuariorr) = ?";
    statement = conn.prepareStatement(query);
    statement.setString(1, usuario.toUpperCase());
    rs = statement.executeQuery();
    while (rs.next()) {
    grupos.add(rs.getString("ROL"));
    } catch (SQLException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    } catch (NamingException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
    if (conn != null) {
    try {
    conn.close();
    } catch (SQLException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    if (rs != null) {
    try {
    rs.close();
    } catch (SQLException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    if (statement != null) {
    try {
    statement.close();
    } catch (SQLException ex) {
    Logger.getLogger(AS400LoginModule.class.getName()).log(Level.SEVERE, null, ex);
    return grupos.elements();
    private String getPasswordHave(String userName, Callback[] callbacks) throws
    LoginException {
    PasswordCallback passwordCallback = (PasswordCallback) callbacks[1];
    char[] password = passwordCallback.getPassword();
    passwordCallback.clearPassword();
    if (password == null || password.length < 1) {
    throwLoginException("Authentication Failed: User " + userName +
    ". Password not supplied");
    String passwd = new String(password);
    System.out.println("\tpasswordHave\t= " + passwd);
    return passwd;
    thanks

Maybe you are looking for

  • External hard drive keeps disconnecting and then reconnecting

    External hard drive on Time Machine, running via USB keeps disconnecting. Get the pop us that the drive wasn't disconnected properly. This Mac is brand new as is the hard drive. It is a Seagate 1T Free Agent. After a minute or two it reconnects. I've

  • Web Intelligence Rich client BOXi R3 trial download

    Hi, I need to download the web Intelligence Rich client BOXi R3 version. I cannot find the link on the SAP site .Any assistance will be a great help

  • Security in stand-alone persistence

    hi, i've got stand alone persistance in my java project, so im using PU with query language, last time i was snffing my ethernal interface, and noticed that queries are like a simple text, if there is any easy way to secure this informations? can per

  • After migration from SP2010 to SP2013 event receiver code is not working

    we have two lists work order list and estimation list. we developed infopath form for work order list , in that we have work order field we don't enter the value of that field after filling the all fields when i clicked save button work order ID fiel

  • Home hub question

    The home hub 3 has 2 fields called Broadband Username & Password, what needs to be entered into them? Thx Solved! Go to Solution.