@@ -86,6 +86,7 @@ public class TinyPounderMainUI extends UI {
8686 private static final String VERSION = getVersion ();
8787 private static final String AVAILABILITY = "Availability" ;
8888 private static final String CONSISTENCY = "Consistency" ;
89+ private static final String SECURITY = "Security" ;
8990
9091 @ Autowired
9192 private CacheManagerBusiness cacheManagerBusiness ;
@@ -125,6 +126,7 @@ public class TinyPounderMainUI extends UI {
125126 private Slider reconnectWindow ;
126127 private GridLayout dataRootGrid ;
127128 private GridLayout consistencyGrid ;
129+ private HorizontalLayout securityGrid ;
128130 private Slider dataRoots ;
129131 private CheckBox platformPersistence ;
130132 private CheckBox platformBackup ;
@@ -142,7 +144,9 @@ public class TinyPounderMainUI extends UI {
142144 private TextField baseLocation ;
143145 private Button trashDataButton ;
144146 private RadioButtonGroup <String > consistencyGroup ;
147+ private CheckBox securityCheckBox ;
145148 private TextField votersCountTextField ;
149+ private TextField securityField ;
146150
147151 @ Override
148152 protected void init (VaadinRequest vaadinRequest ) {
@@ -699,6 +703,28 @@ private void addVoltronConfigControls() {
699703
700704 layout .addComponentsAndExpand (dataRootGrid );
701705
706+ //security
707+ securityGrid = new HorizontalLayout ();
708+ securityCheckBox = new CheckBox ();
709+ securityCheckBox .setCaption (SECURITY );
710+
711+ securityCheckBox .addStyleName (ValoTheme .OPTIONGROUP_HORIZONTAL );
712+
713+ securityGrid .addComponent (securityCheckBox );
714+ securityCheckBox .addStyleName ("align-bottom25" );
715+ securityField = new TextField ("Security Root Directory" );
716+ securityField .setValue (settings .getSecurityPath () != null ? settings .getSecurityPath () : "" );
717+
718+ securityCheckBox .addValueChangeListener (event -> {
719+ if (!event .getValue ()) {
720+ securityGrid .removeComponent (securityField );
721+ } else {
722+ securityGrid .addComponentsAndExpand (securityField );
723+ }
724+ });
725+ layout .addComponentsAndExpand (securityGrid );
726+
727+
702728 //consistency and voters
703729 consistencyGrid = new GridLayout (2 , 1 );
704730 consistencyGroup = new RadioButtonGroup <>();
@@ -914,6 +940,21 @@ private void generateXML(boolean skipConfirmOverwrite) {
914940 " </service>\n " +
915941 "\n " );
916942 }
943+
944+ // security
945+ if (securityCheckBox .getValue ()) {
946+
947+ sb .append (" <service xmlns:security=\" http://www.terracottatech.com/config/security\" >\n " +
948+ " <security:security>\n " +
949+ " <security:security-root-directory>" + securityField .getValue () + "</security:security-root-directory>\n " +
950+ " <security:ssl-tls/>\n " +
951+ " <security:authentication>\n " +
952+ " <security:file/>\n " +
953+ " </security:authentication>\n " +
954+ " </security:security>\n " +
955+ " </service>\n " +
956+ "\n " );
957+ }
917958 }
918959
919960 // servers
@@ -975,6 +1016,8 @@ private void generateXML(boolean skipConfirmOverwrite) {
9751016 }
9761017
9771018 tcConfigXml .setValue (tcConfigXml .getValue () + xml + "\n \n " );
1019+ settings .setSecurityPath (securityField .getValue ());
1020+
9781021 }
9791022 }
9801023
0 commit comments