1 /* 2 * This file is part of the LibreOffice project. 3 * 4 * This Source Code Form is subject to the terms of the Mozilla Public 5 * License, v. 2.0. If a copy of the MPL was not distributed with this 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 * 8 * This file incorporates work covered by the following license notice: 9 * 10 * Licensed to the Apache Software Foundation (ASF) under one or more 11 * contributor license agreements. See the NOTICE file distributed 12 * with this work for additional information regarding copyright 13 * ownership. The ASF licenses this file to you under the Apache 14 * License, Version 2.0 (the "License"); you may not use this file 15 * except in compliance with the License. You may obtain a copy of 16 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 17 */ 18 19 package complex.passwordcontainer; 20 21 import com.sun.star.lib.uno.helper.WeakBase; 22 import com.sun.star.task.XInteractionContinuation; 23 import com.sun.star.ucb.XInteractionSupplyAuthentication; 24 import com.sun.star.task.XInteractionRequest; 25 import com.sun.star.task.XInteractionHandler; 26 import com.sun.star.task.MasterPasswordRequest; 27 import com.sun.star.uno.UnoRuntime; 28 29 public class MasterPasswdHandler extends WeakBase 30 implements XInteractionHandler { 31 private final XInteractionHandler m_xHandler; 32 MasterPasswdHandler( XInteractionHandler xHandler )33 public MasterPasswdHandler( XInteractionHandler xHandler ) { 34 m_xHandler = xHandler; 35 } 36 handle( XInteractionRequest xRequest )37 public void handle( XInteractionRequest xRequest ) { 38 try { 39 MasterPasswordRequest aMasterPasswordRequest; 40 if( xRequest.getRequest() instanceof MasterPasswordRequest ) { 41 aMasterPasswordRequest = (MasterPasswordRequest)xRequest.getRequest(); 42 if( aMasterPasswordRequest != null ) { 43 XInteractionContinuation xContinuations[] = xRequest.getContinuations(); 44 XInteractionSupplyAuthentication xAuthentication = null; 45 46 for( int i = 0; i < xContinuations.length; ++i ) { 47 xAuthentication = UnoRuntime.queryInterface(XInteractionSupplyAuthentication.class, xContinuations[i]); 48 if( xAuthentication != null ) 49 { 50 break; 51 } 52 } 53 if( xAuthentication.canSetPassword() ) 54 { 55 xAuthentication.setPassword("abcdefghijklmnopqrstuvwxyz123456"); 56 } 57 xAuthentication.select(); 58 } 59 } else { 60 m_xHandler.handle( xRequest ); 61 } 62 } catch( Exception e ) { 63 System.out.println( "MasterPasswordHandler Error: " + e ); 64 } 65 } 66 } 67 68 69 70 71 72 73 74