aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Kaduk <kaduk@mit.edu>2015-05-22 14:38:27 -0400
committerTom Yu <tlyu@mit.edu>2015-06-24 17:40:24 -0400
commitec06613cd448038d31cadb9ae7863ad71fa9edf9 (patch)
treef6d463a74feecc2286bf7b97e1da3ce6b5c6f29e /src
parentda5b47d4fea1eef9c6f4d9e72118f9e6a5e37ed9 (diff)
downloadkrb5-ec06613cd448038d31cadb9ae7863ad71fa9edf9.zip
krb5-ec06613cd448038d31cadb9ae7863ad71fa9edf9.tar.gz
krb5-ec06613cd448038d31cadb9ae7863ad71fa9edf9.tar.bz2
Add leash column for the ccache name
Previously, it was fairly easy to set the default cache to MSLSA:, which is not collection-enabled (as opposed to the normal default of API:, which is), and the non-collection behavior proved confusing to many users. Ideally there would be an option to choose the output ccache in the "Get Ticket" window, but that is more complicated to implement than just a display of what cache a given ticket is in. This extra display column should still help to alleviate user confusion. (cherry picked from commit b26d25e97cf3c53ef896092c71948011ceac645d) ticket: 8207 version_fixed: 1.13.3 status: resolved
Diffstat (limited to 'src')
-rw-r--r--src/windows/leash/Leash.rc2
-rw-r--r--src/windows/leash/LeashUICommandHandler.cpp5
-rw-r--r--src/windows/leash/LeashView.cpp25
-rw-r--r--src/windows/leash/LeashView.h6
-rw-r--r--src/windows/leash/kfwribbon.xml4
-rw-r--r--src/windows/leash/resource.h1
6 files changed, 39 insertions, 4 deletions
diff --git a/src/windows/leash/Leash.rc b/src/windows/leash/Leash.rc
index d1e7f16..798e629 100644
--- a/src/windows/leash/Leash.rc
+++ b/src/windows/leash/Leash.rc
@@ -124,6 +124,7 @@ BEGIN
MENUITEM "&Valid Until", ID_VALID_UNTIL
MENUITEM "&Encryption Type", ID_ENCRYPTION_TYPE
MENUITEM "&Flags", ID_SHOW_TICKET_FLAGS
+ MENUITEM "&Credential Cache Name", ID_CCACHE_NAME
END
POPUP "&Options"
BEGIN
@@ -968,6 +969,7 @@ BEGIN
ID_FORGET_PRINCIPALS "Clear the Principal history. This only affects autocompletion in the Get Tickets and Change Password dialogs.\n Forget Principals"
ID_ENCRYPTION_TYPE "Display column showing the encryption type for your tickets and session keys.\n Encryption Type"
ID_VALID_UNTIL "Display column showing when your tickets will expire.\n Valid Until"
+ ID_CCACHE_NAME "Display column showing the name of the credential cache containing this ticket.\n Cache Name"
END
STRINGTABLE
diff --git a/src/windows/leash/LeashUICommandHandler.cpp b/src/windows/leash/LeashUICommandHandler.cpp
index 828640f..762f957 100644
--- a/src/windows/leash/LeashUICommandHandler.cpp
+++ b/src/windows/leash/LeashUICommandHandler.cpp
@@ -154,6 +154,9 @@ LeashUICommandHandler::Execute(UINT32 commandId, UI_EXECUTIONVERB verb,
SendMessage(mainwin, WM_COMMAND, MAKEWPARAM(ID_SHOW_TICKET_FLAGS,
1), 0);
break;
+ case cmdCcacheNameCheckBox:
+ SendMessage(mainwin, WM_COMMAND, MAKEWPARAM(ID_CCACHE_NAME, 1), 0);
+ break;
case cmdAutoRenewCheckBox:
SendMessage(mainwin, WM_COMMAND, MAKEWPARAM(ID_AUTO_RENEW, 1), 0);
break;
@@ -245,6 +248,8 @@ LeashUICommandHandler::UpdateProperty(UINT32 commandId, REFPROPERTYKEY key,
return RegKeyToProperty("Encryption Type", false, newValue);
case cmdFlagsCheckBox:
return RegKeyToProperty("Flags", false, newValue);
+ case cmdCcacheNameCheckBox:
+ return RegKeyToProperty("Credential Cache", false, newValue);
case cmdAutoRenewCheckBox:
return RegKeyToProperty("AutoRenewTickets", true, newValue);
case cmdExpireAlarmCheckBox:
diff --git a/src/windows/leash/LeashView.cpp b/src/windows/leash/LeashView.cpp
index c3d45a5..745a16f 100644
--- a/src/windows/leash/LeashView.cpp
+++ b/src/windows/leash/LeashView.cpp
@@ -66,11 +66,13 @@ BEGIN_MESSAGE_MAP(CLeashView, CListView)
ON_COMMAND(ID_RENEWABLE_UNTIL, OnRenewableUntil)
ON_COMMAND(ID_SHOW_TICKET_FLAGS, OnShowTicketFlags)
ON_COMMAND(ID_ENCRYPTION_TYPE, OnEncryptionType)
+ ON_COMMAND(ID_CCACHE_NAME, OnCcacheName)
ON_UPDATE_COMMAND_UI(ID_TIME_ISSUED, OnUpdateTimeIssued)
ON_UPDATE_COMMAND_UI(ID_VALID_UNTIL, OnUpdateValidUntil)
ON_UPDATE_COMMAND_UI(ID_RENEWABLE_UNTIL, OnUpdateRenewableUntil)
ON_UPDATE_COMMAND_UI(ID_SHOW_TICKET_FLAGS, OnUpdateShowTicketFlags)
ON_UPDATE_COMMAND_UI(ID_ENCRYPTION_TYPE, OnUpdateEncryptionType)
+ ON_UPDATE_COMMAND_UI(ID_CCACHE_NAME, OnUpdateCcacheName)
ON_COMMAND(ID_UPPERCASE_REALM, OnUppercaseRealm)
ON_COMMAND(ID_KILL_TIX_ONEXIT, OnKillTixOnExit)
ON_UPDATE_COMMAND_UI(ID_UPPERCASE_REALM, OnUpdateUppercaseRealm)
@@ -149,6 +151,7 @@ ViewColumnInfo CLeashView::sm_viewColumns[] =
{"Valid Until", true, ID_VALID_UNTIL, 100}, // VALID_UNTIL
{"Encryption Type", false, ID_ENCRYPTION_TYPE, 100}, // ENCRYPTION_TYPE
{"Flags", false, ID_SHOW_TICKET_FLAGS, 100}, // TICKET_FLAGS
+ {"Credential Cache", false, ID_CCACHE_NAME, 105}, // CACHE_NAME
};
static struct TicketFlag {
@@ -1126,7 +1129,8 @@ void CLeashView::AddDisplayItem(CListCtrl &list,
long valid_until,
long renew_until,
char *encTypes,
- unsigned long flags)
+ unsigned long flags,
+ char *ccache_name)
{
TCHAR* localTimeStr=NULL;
TCHAR* durationStr=NULL;
@@ -1185,6 +1189,9 @@ void CLeashView::AddDisplayItem(CListCtrl &list,
krb5TicketFlagsToString(flags, &flagsStr);
list.SetItemText(iItem, iSubItem++, flagsStr);
}
+ if (sm_viewColumns[CACHE_NAME].m_enabled) {
+ list.SetItemText(iItem, iSubItem++, ccache_name);
+ }
if (flagsStr)
free(flagsStr);
if (localTimeStr)
@@ -1477,7 +1484,8 @@ VOID CLeashView::OnUpdateDisplay()
principal->valid_until,
principal->renew_until,
"",
- principal->flags);
+ principal->flags,
+ principal->ccache_name);
if (elem->m_expanded) {
for (tempList = principal->ticket_list;
tempList != NULL;
@@ -1490,7 +1498,8 @@ VOID CLeashView::OnUpdateDisplay()
tempList->valid_until,
tempList->renew_until,
tempList->encTypes,
- tempList->flags);
+ tempList->flags,
+ principal->ccache_name);
}
}
if ((elem->m_focus >= 0) &&
@@ -1803,6 +1812,16 @@ VOID CLeashView::OnUpdateEncryptionType(CCmdUI *pCmdUI)
pCmdUI->SetCheck(sm_viewColumns[ENCRYPTION_TYPE].m_enabled);
}
+VOID CLeashView::OnCcacheName()
+{
+ ToggleViewColumn(CACHE_NAME);
+}
+
+VOID CLeashView::OnUpdateCcacheName(CCmdUI *pCmdUI)
+{
+ pCmdUI->SetCheck(sm_viewColumns[CACHE_NAME].m_enabled);
+}
+
VOID CLeashView::OnLargeIcons()
{
INT x, y, n;
diff --git a/src/windows/leash/LeashView.h b/src/windows/leash/LeashView.h
index 1e36211..190c93b 100644
--- a/src/windows/leash/LeashView.h
+++ b/src/windows/leash/LeashView.h
@@ -83,6 +83,7 @@ enum eViewColumn {
VALID_UNTIL,
ENCRYPTION_TYPE,
TICKET_FLAGS,
+ CACHE_NAME,
NUM_VIEW_COLUMNS
};
@@ -221,7 +222,8 @@ private:
long valid_until,
long renew_until,
char *encTypes,
- unsigned long flags);
+ unsigned long flags,
+ char *cache_name);
void SetTrayIcon(int nim, int state=0);
void SetTrayText(int nim, CString tip);
@@ -305,6 +307,7 @@ protected:
afx_msg VOID OnRenewableUntil();
afx_msg VOID OnShowTicketFlags();
afx_msg VOID OnEncryptionType();
+ afx_msg VOID OnCcacheName();
afx_msg VOID OnUppercaseRealm();
afx_msg VOID OnKillTixOnExit();
afx_msg VOID OnDestroy();
@@ -317,6 +320,7 @@ protected:
afx_msg VOID OnUpdateRenewableUntil(CCmdUI* pCmdUI);
afx_msg VOID OnUpdateShowTicketFlags(CCmdUI* pCmdUI);
afx_msg VOID OnUpdateEncryptionType(CCmdUI* pCmdUI);
+ afx_msg VOID OnUpdateCcacheName(CCmdUI* pCmdUI);
afx_msg VOID OnUpdateUppercaseRealm(CCmdUI* pCmdUI);
afx_msg VOID OnUpdateKillTixOnExit(CCmdUI* pCmdUI);
afx_msg VOID OnUpdateLowTicketAlarm(CCmdUI* pCmdUI);
diff --git a/src/windows/leash/kfwribbon.xml b/src/windows/leash/kfwribbon.xml
index 8245b7b..975991b 100644
--- a/src/windows/leash/kfwribbon.xml
+++ b/src/windows/leash/kfwribbon.xml
@@ -62,6 +62,9 @@
<Command Name="cmdFlagsCheckBox"
LabelTitle="Flags"
Keytip="F" />
+ <Command Name="cmdCcacheNameCheckBox"
+ LabelTitle="Credential Cache Name"
+ Keytip="N" />
<Command Name="cmdAutoRenewCheckBox"
LabelTitle="Automatic Ticket Renewal"
Keytip="R" />
@@ -117,6 +120,7 @@
<CheckBox CommandName="cmdValidUntilCheckBox" />
<CheckBox CommandName="cmdEncTypeCheckBox" />
<CheckBox CommandName="cmdFlagsCheckBox" />
+ <CheckBox CommandName="cmdCcacheNameCheckBox" />
</Group>
<Group CommandName="cmdTicketOptionsGroup" >
<CheckBox CommandName="cmdAutoRenewCheckBox" />
diff --git a/src/windows/leash/resource.h b/src/windows/leash/resource.h
index 27fd67e..5f606fc 100644
--- a/src/windows/leash/resource.h
+++ b/src/windows/leash/resource.h
@@ -339,6 +339,7 @@
#define ID_EXPORT_TICKET 32837
#define ID_AUTO_IMPORT_TICKET 32838
#define ID_AUTO_IMPORT_TICKETS 32840
+#define ID_CCACHE_NAME 32841
// Next default values for new objects
//