001 package com.croftsoft.apps.agoracast.c2p; 002 003 import java.awt.*; 004 import java.io.*; 005 import javax.swing.*; 006 007 import com.croftsoft.core.gui.IdentifierDialog; 008 import com.croftsoft.core.lang.StringLib; 009 import com.croftsoft.core.net.news.NntpConstants; 010 import com.croftsoft.core.net.news.NntpLib; 011 import com.croftsoft.core.net.news.NntpSocket; 012 import com.croftsoft.core.security.Authentication; 013 import com.croftsoft.core.security.Identifier; 014 015 /********************************************************************* 016 * 017 * <p /> 018 * 019 * @version 020 * 2001-09-12 021 * @since 022 * 2001-07-26 023 * @author 024 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 025 *********************************************************************/ 026 027 public final class AgoracastLib 028 ////////////////////////////////////////////////////////////////////// 029 ////////////////////////////////////////////////////////////////////// 030 { 031 032 public static void authenticate ( 033 NntpSocket nntpSocket, 034 AgoracastMediator agoracastMediator ) 035 throws IOException 036 ////////////////////////////////////////////////////////////////////// 037 { 038 boolean isAuthenticated = false; 039 040 while ( !isAuthenticated ) 041 { 042 String username = agoracastMediator.getUsername ( ); 043 044 String password = agoracastMediator.getPassword ( ); 045 046 Authentication authentication = null; 047 048 if ( ( username != null ) 049 && !"".equals ( username.trim ( ) ) 050 && ( password != null ) 051 && !"".equals ( password.trim ( ) ) ) 052 { 053 authentication = new Authentication ( username, password ); 054 } 055 else 056 { 057 Frame parentFrame = agoracastMediator.getParentFrame ( ); 058 059 authentication 060 = promptForAuthentication ( agoracastMediator, parentFrame ); 061 062 if ( authentication != null ) 063 { 064 agoracastMediator.setUsername ( authentication.getUsername ( ) ); 065 066 agoracastMediator.setPassword ( authentication.getPassword ( ) ); 067 } 068 } 069 070 if ( authentication != null ) 071 { 072 try 073 { 074 NntpLib.authenticate ( 075 nntpSocket, 076 authentication.getUsername ( ), 077 authentication.getPassword ( ) ); 078 079 isAuthenticated = true; 080 } 081 catch ( SecurityException ex ) 082 { 083 agoracastMediator.setPassword ( null ); 084 } 085 } 086 else 087 { 088 throw new SecurityException ( "authentication canceled" ); 089 } 090 } 091 } 092 093 public static Authentication promptForAuthentication ( 094 AgoracastMediator agoracastMediator, 095 Frame parentFrame ) 096 ////////////////////////////////////////////////////////////////////// 097 { 098 IdentifierDialog identifierDialog = new IdentifierDialog ( 099 parentFrame, 100 AgoracastConstants.IDENTIFIER_DIALOG_TITLE, 101 agoracastMediator.getUsername ( ), 102 agoracastMediator.getPanelBackgroundColor ( ), 103 agoracastMediator.getTextFieldBackgroundColor ( ) ); 104 105 Authentication authentication 106 = identifierDialog.getAuthentication ( ); 107 108 identifierDialog.dispose ( ); 109 110 return authentication; 111 } 112 113 public static void setColor ( 114 JPanel jPanel, 115 AgoracastMediator agoracastMediator ) 116 ////////////////////////////////////////////////////////////////////// 117 { 118 Color panelBackgroundColor 119 = agoracastMediator.getPanelBackgroundColor ( ); 120 121 if ( panelBackgroundColor != null ) 122 { 123 jPanel.setBackground ( panelBackgroundColor ); 124 } 125 } 126 127 public static void setColor ( 128 JTextField jTextField, 129 AgoracastMediator agoracastMediator ) 130 ////////////////////////////////////////////////////////////////////// 131 { 132 Color textFieldBackgroundColor 133 = agoracastMediator.getTextFieldBackgroundColor ( ); 134 135 if ( textFieldBackgroundColor != null ) 136 { 137 jTextField.setBackground ( textFieldBackgroundColor ); 138 } 139 } 140 141 ////////////////////////////////////////////////////////////////////// 142 ////////////////////////////////////////////////////////////////////// 143 144 private AgoracastLib ( ) { } 145 146 ////////////////////////////////////////////////////////////////////// 147 ////////////////////////////////////////////////////////////////////// 148 }